PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Utilizzo di pt-pg-summary Percona Toolkit per PostgreSQL

Percona Toolkit è un prodotto potente, gratuito e open source sviluppato da Percona. È una raccolta di strumenti da riga di comando che consentono di eseguire diverse attività MySQL, MongoDB, PostgreSQL e di sistema che, in generale, sono troppo complesse per essere eseguite manualmente. Supporta Percona Server per MySQL, MySQL, MariaDB, PostgreSQL, Percona Server per MongoDB e MongoDB.

In questo blog, ti mostreremo come installare Percona Toolkit e come utilizzare un nuovo strumento aggiunto di recente nel pacchetto Percona Toolkit chiamato pt-pg-summary.

Installazione di Percona Toolkit

Per prima cosa, vediamo come installare Percona Toolkits per poter usare pt-pg-summary. In questo caso, utilizzeremo CentOS 7 e PostgreSQL 12.

Installa il repository Percona:

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

Dopo aver installato il repository, dovresti essere in grado di installare il pacchetto percona-toolkit:

$ yum install percona-toolkit

Ora devi solo eseguirlo utilizzando i parametri corretti.

$ 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

Esecuzione di Percona Toolkit

Quando esegui questo strumento, vedrai un output raggruppato per le seguenti categorie:

  • Porta del database e directory_dati
  • Elenco dei tablespace
  • Slave e il ritardo con il Maestro
  • Informazioni sul cluster
  • Banche dati
  • Rapporti di hit della cache dell'indice
  • Rapporti hit della cache della tabella
  • Elenco di Wait_events per l'intero Cluster - tutti i database
  • Elenco utenti e client_addr o client_hostname collegati a --all-databases
  • I contatori differiscono dopo 10 secondi
  • Accesso alla tabella per database
  • Impostazioni istanza
  • Elabora il comando di avvio

Quindi, eseguiamolo su un'istanza PostgreSQL per vedere un esempio:

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

La prima azione è raccogliere le informazioni dal tuo server PostgreSQL:

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

...

Quindi, mostrerà tutte le informazioni raccolte in questo modo:

##### --- 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

Ora hai tutte queste informazioni, puoi usarle per diversi scopi come la risoluzione dei problemi, il monitoraggio delle prestazioni o anche per avere una panoramica della tua configurazione attuale. Puoi anche integrarlo con un altro Toolkit Percona come "pt-summary" per avere maggiori informazioni sul sistema in cui è in esecuzione.

Conclusione

Percona Toolkit è un potente strumento per aiutarti con le attività di gestione del database. Ora con pt-pg-summary, sarai in grado di avere informazioni sulla tua istanza PostgreSQL e puoi integrarle in un sistema di monitoraggio o persino combinare questo strumento con un altro componente Percona Toolkit per raccogliere ancora più informazioni dai tuoi sistemi.