PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Utilisation de la boîte à outils Percona pt-pg-summary pour PostgreSQL

La boîte à outils Percona est un produit puissant, gratuit et open source développé par Percona. Il s'agit d'un ensemble d'outils de ligne de commande qui vous permettent d'effectuer différentes tâches MySQL, MongoDB, PostgreSQL et système qui, en général, sont trop complexes pour être exécutées manuellement. Il prend en charge Percona Server pour MySQL, MySQL, MariaDB, PostgreSQL, Percona Server pour MongoDB et MongoDB.

Dans ce blog, nous allons vous montrer comment installer Percona Toolkit et comment utiliser un nouvel outil ajouté récemment dans le package Percona Toolkit appelé pt-pg-summary.

Installation des kits d'outils Percona

Tout d'abord, voyons comment installer Percona Toolkits pour pouvoir utiliser pt-pg-summary. Dans ce cas, nous utiliserons CentOS 7 et PostgreSQL 12.

Installez le référentiel Percona :

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

Une fois le référentiel installé, vous devriez pouvoir installer le package percona-toolkit :

$ yum install percona-toolkit

Maintenant, il vous suffit de l'exécuter en utilisant les paramètres corrects.

$ 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

Exécuter les kits d'outils Percona

Lorsque vous exécutez cet outil, vous verrez une sortie regroupée selon les catégories suivantes :

  • Port de la base de données et Data_Directory
  • Liste des espaces de table
  • L'esclave et le décalage avec le maître
  • Informations sur le cluster
  • Bases de données
  • Taux d'accès au cache d'index
  • Taux d'accès au cache de table
  • Liste des Wait_events pour l'ensemble du cluster - toutes les bases de données
  • Liste des utilisateurs et client_addr ou client_hostname connectés à --all-databases
  • Compteurs diff après 10 secondes
  • Accès aux tables par base de données
  • Paramètres de l'instance
  • Traite la commande de démarrage

Alors, exécutons-le sur une instance PostgreSQL pour voir un exemple :

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

La première action consiste à collecter les informations de votre serveur 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

...

Ensuite, il affichera toutes les informations collectées de cette manière :

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

Maintenant que vous avez toutes ces informations, vous pouvez les utiliser à différentes fins comme le dépannage, la surveillance des performances ou même pour avoir un aperçu de votre configuration actuelle. Vous pouvez également compléter cela avec une autre boîte à outils Percona comme "pt-summary" pour avoir plus d'informations sur le système sur lequel il s'exécute.

Conclusion

Percona Toolkit est un outil puissant pour vous aider dans les tâches de gestion de base de données. Maintenant, avec pt-pg-summary, vous pourrez avoir des informations sur votre instance PostgreSQL, et vous pouvez l'intégrer dans un système de surveillance ou même combiner cet outil avec un autre composant Percona Toolkit pour collecter encore plus d'informations à partir de vos systèmes.