sql >> Databasteknik >  >> RDS >> PostgreSQL

Använda pt-pg-summary Percona Toolkit för PostgreSQL

Percona Toolkit är en kraftfull, gratis och öppen källkodsprodukt utvecklad av Percona. Det är en samling kommandoradsverktyg som låter dig utföra olika MySQL-, MongoDB-, PostgreSQL- och systemuppgifter som i allmänhet är för komplexa för att utföra manuellt. Den stöder Percona Server för MySQL, MySQL, MariaDB, PostgreSQL, Percona Server för MongoDB och MongoDB.

I den här bloggen kommer vi att visa dig hur du installerar Percona Toolkit och hur du använder ett nytt verktyg som nyligen lagts till i Percona Toolkit-paketet som heter pt-pg-summary.

Installera Percona Toolkits

Låt oss först se hur man installerar Percona Toolkits för att kunna använda pt-pg-summary. I det här fallet kommer vi att använda CentOS 7 och PostgreSQL 12.

Installera Percona Repository:

$ yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm

När arkivet är installerat bör du kunna installera paketet percona-toolkit:

$ yum install percona-toolkit

Nu behöver du bara köra den med rätt parametrar.

$ pt-pg-summary --help

usage: pt-pg-summary [<flags>]

Percona Toolkit - PostgreSQL Summary

Flags:

      --help                     Show context-sensitive help (also try --help-long and --help-man).

      --version                  Show application version.

      --databases=DATABASES ...  Summarize this comma-separated list of databases. All if not specified

  -h, --host=HOST                Host to connect to

  -W, --password=PASSWORD        Password to use when connecting

  -p, --port=PORT                Port number to use for connection

      --sleep=10                 Seconds to sleep when gathering status counters

  -U, --username=USERNAME        User for login if not current user

      --disable-ssl              Diable SSL for the connection

      --verbose                  Show verbose log

      --debug                    Show debug information in the logs

Kör Percona Toolkits

När du kör det här verktyget kommer du att se en utdata grupperad efter följande kategorier:

  • Databasport och Data_Directory
  • Lista över tabellutrymmen
  • Slaven och eftersläpningen med Master
  • Klusterinformation
  • Databaser
  • Träffkvoter för indexcache
  • Träffkvoter för tabellcache
  • Lista över Wait_events för hela klustret - alla databaser
  • Lista över användare och client_addr eller client_hostname anslutna till --all-databases
  • Räknare diff efter 10 sekunder
  • Tabellåtkomst per databas
  • Förekomstinställningar
  • Behandlar startkommando

Så, låt oss köra det på en PostgreSQL-instans för att se ett exempel:

$ pt-pg-summary -hlocalhost -p5432 -Uadmindb

Den första åtgärden är att samla in informationen från din PostgreSQL-server:

INFO[0000] Connecting to the database server using: host=localhost port=5432 user=admindb sslmode=disable dbname=postgres

INFO[0000] Connection OK

INFO[0000] Detected PostgreSQL version: 12.0.5

INFO[0000] Getting global information

INFO[0000] Collecting global counters (1st pass)

INFO[0000] Collecting Cluster information

INFO[0000] Waiting 10 seconds to read  counters

INFO[0000] Collecting Connected Clients information

INFO[0000] Collecting Database Wait Events information

INFO[0000] Collecting Global Wait Events information

...

Då kommer den att visa all insamlad information på detta sätt:

##### --- Database Port and Data_Directory --- ####

+----------------------+----------------------------------------------------+

|         Name         |                      Setting                       |

+----------------------+----------------------------------------------------+

| data_directory       | /var/lib/pgsql/12/data                             |

+----------------------+----------------------------------------------------+

##### --- List of Tablespaces ---- ######

+----------------------+----------------------+-----------------------------+

|         Name         |         Owner        |               Location      |

+----------------------+----------------------+-----------------------------+

| pg_default           | postgres             |                             |

| pg_global            | postgres             |                             |

+----------------------+----------------------+-----------------------------+

##### --- Slave and the lag with Master --- ####

+----------------------+----------------------+------------------+----------+

|  Application Name    |    Client Address    |      State       |   Lag    |

+----------------------+----------------------+------------------+----------+

| pgsql_14_node_0      | 10.10.10.127         | streaming        |     0.00 |

+----------------------+----------------------+------------------+----------+

##### --- Cluster Information --- ####

+---------------------------------------------------------------------------+

 Usename        : admindb

 Time           : 2020-11-12 17:27:18.200552 +0000 UTC

 Client Address : ::1

 Client Hostname:

 Version        : PostgreSQL 12.5 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8....

 Started        : 2020-11-12 17:07:07.185407 +0000 UTC

 Is Slave       : false

+---------------------------------------------------------------------------+

##### --- Databases --- ####

+----------------------+------------+

|       Dat Name       |    Size    |

+----------------------+------------+

| postgres             |    8193 kB |

| template1            |    8193 kB |

| template0            |    8049 kB |

+----------------------+------------+

##### --- Index Cache Hit Ratios --- ####

Database: postgres

+----------------------+------------+

|      Index Name      |    Ratio   |

+----------------------+------------+

| index hit rate       |      0.00  |

+----------------------+------------+

##### --- Table Cache Hit Ratios --- ####

Database: postgres

+----------------------+------------+

|      Index Name      |    Ratio   |

+----------------------+------------+

| cache hit rate       |       0.00 |

+----------------------+------------+

##### --- List of Wait_events for the entire Cluster - all-databases --- ####

+----------------------+----------------------+---------+

|   Wait Event Type    |        Event         |  Count  |

+----------------------+----------------------+---------+

| Activity             | BgWriterHibernate    |     1   |

| Activity             | WalWriterMain        |     1   |

| Activity             | LogicalLauncherMain  |     1   |

| Activity             | WalSenderMain        |     1   |

| Client               | ClientRead           |     2   |

| Activity             | CheckpointerMain     |     1   |

| Activity             | AutoVacuumMain       |     1   |

+----------------------+----------------------+---------+

##### --- List of users and client_addr or client_hostname connected to --all-databases --- ####

+----------------------+------------+---------+----------------------+--------+

|   Wait Event Type    |        Client        |         State        |  Count |

+----------------------+------------+---------+----------------------+--------+

| admindb              | 10.10.10.121/32      | idle                 |      2 |

| cmon_replication     | 10.10.10.127/32      | active               |      1 |

| admindb              | ::1/128              | active               |      1 |

+----------------------+------------+---------+----------------------+--------+

##### --- Counters diff after 10 seconds --- ####

+----------------------+-------------+------------+--------------+-------------+------------+-------------+------------+-------------+------------+------------+-----------+-----------+-----------+------------+

| Database             | Numbackends | XactCommit | XactRollback | BlksRead    | BlksHit    | TupReturned | TupFetched | TupInserted | TupUpdated | TupDeleted | Conflicts | TempFiles | TempBytes | Deadlocks  |

+----------------------+-------------+------------+--------------+-------------+------------+-------------+------------+-------------+------------+------------+-----------+-----------+-----------+------------+

|                      |       0     |       0    |       0      |       0     |     119    |      77     |      31    |       0     |       0    |       0    |       0   |       0   |       0   |       0    |

| postgres             |       0     |      39    |       0      |       0     |    1541    |    1641     |     816    |       0     |       0    |       0    |       0   |       0   |       0   |       0    |

...

##### --- Table access per database --- ####

Database: postgres

+----------------------------------------------------+------+--------------------------------+---------+

|                       Relname                      | Kind |             Datname            |  Count  |

+----------------------------------------------------+------+--------------------------------+---------+

| pg_database_datname_index                          |   i  |                                |       1 |

| pg_class                                           |   r  | postgres                       |       1 |

| pg_database                                        |   r  |                                |       1 |

...

##### --- Instance settings --- ####

                      Setting                                            Value

allow_system_table_mods                       : off

application_name                              :

archive_cleanup_command                       :

archive_command                               : (disabled)

archive_mode                                  : off

archive_timeout                               : 0

array_nulls                                   : on

authentication_timeout                        : 60

autovacuum                                    : on

autovacuum_analyze_scale_factor               : 0.1

…

##### --- Processes start up command --- ####

PID  :    Command line

  5158 : /usr/pgsql-12/bin/postgres -p 5432

Nu har du all denna information, du kan använda den för olika ändamål som felsökning, prestandaövervakning eller till och med för att få en överblick över din nuvarande konfiguration. Du kan också komplettera detta med en annan Percona Toolkit som "pt-summary" för att få mer information om systemet där det körs.

Slutsats

Percona Toolkit är ett kraftfullt verktyg som hjälper dig med databashanteringsuppgifter. Nu med pt-pg-summary kommer du att kunna ha information om din PostgreSQL-instans, och du kan integrera detta i ett övervakningssystem eller till och med kombinera detta verktyg med en annan Percona Toolkit-komponent för att samla in ännu mer information från dina system.


  1. MySQL Välj Top N Rader

  2. Optimering av MySQL-sökning med hjälp av like och jokertecken

  3. pgAdmin III Varför förkortas frågeresultat?

  4. Topptrender inom databashantering