sql >> Base de Datos >  >> RDS >> PostgreSQL

Uso del kit de herramientas pt-pg-summary Percona para PostgreSQL

Percona Toolkit es un producto potente, gratuito y de código abierto desarrollado por Percona. Es una colección de herramientas de línea de comandos que le permiten realizar diferentes tareas de MySQL, MongoDB, PostgreSQL y del sistema que, en general, son demasiado complejas para realizar manualmente. Es compatible con Percona Server para MySQL, MySQL, MariaDB, PostgreSQL, Percona Server para MongoDB y MongoDB.

En este blog, le mostraremos cómo instalar Percona Toolkit y cómo usar una nueva herramienta agregada recientemente en el paquete de Percona Toolkit llamada pt-pg-summary.

Instalación de los juegos de herramientas de Percona

Primero, veamos cómo instalar Percona Toolkits para poder usar pt-pg-summary. En este caso, usaremos CentOS 7 y PostgreSQL 12.

Instalar el Repositorio Percona:

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

Con el repositorio instalado, debería poder instalar el paquete percona-toolkit:

$ yum install percona-toolkit

Ahora solo necesita ejecutarlo usando los parámetros correctos.

$ 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

Ejecución de kits de herramientas de Percona

Cuando ejecute esta herramienta, verá un resultado agrupado por las siguientes categorías:

  • Puerto de base de datos y directorio_de_datos
  • Lista de Tablespaces
  • Esclavo y el retraso con el Maestro
  • Información del clúster
  • Bases de datos
  • Índice de aciertos de caché
  • Proporciones de aciertos de caché de tablas
  • Lista de Wait_events para todo el clúster:todas las bases de datos
  • Lista de usuarios y client_addr o client_hostname conectados a --all-databases
  • Los contadores difieren después de 10 segundos
  • Acceso a tablas por base de datos
  • Configuración de la instancia
  • Comando de inicio de procesos

Entonces, ejecútelo en una instancia de PostgreSQL para ver un ejemplo:

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

La primera acción es recopilar la información de su servidor 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

...

Luego, mostrará toda la información recolectada de esta forma:

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

Ahora que tiene toda esta información, puede usarla para diferentes propósitos, como solucionar problemas, monitorear el rendimiento o incluso tener una visión general de su configuración actual. También puede complementar esto con otro kit de herramientas de Percona como "pt-summary" para tener más información sobre el sistema en el que se está ejecutando.

Conclusión

Percona Toolkit es una poderosa herramienta para ayudarlo con las tareas de administración de bases de datos. Ahora, con pt-pg-summary, podrá tener información sobre su instancia de PostgreSQL y podrá integrarla en un sistema de monitoreo o incluso combinar esta herramienta con otro componente de Percona Toolkit para recopilar aún más información de sus sistemas.