PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Verwenden des pt-pg-summary Percona Toolkit für PostgreSQL

Das Percona Toolkit ist ein leistungsstarkes, kostenloses Open-Source-Produkt, das von Percona entwickelt wurde. Es ist eine Sammlung von Befehlszeilentools, mit denen Sie verschiedene MySQL-, MongoDB-, PostgreSQL- und Systemaufgaben ausführen können, die im Allgemeinen zu komplex sind, um sie manuell auszuführen. Es unterstützt Percona Server für MySQL, MySQL, MariaDB, PostgreSQL, Percona Server für MongoDB und MongoDB.

In diesem Blog zeigen wir Ihnen, wie Sie Percona Toolkit installieren und wie Sie ein neues Tool namens pt-pg-summary verwenden, das kürzlich im Percona Toolkit-Paket hinzugefügt wurde.

Installieren von Percona-Toolkits

Lassen Sie uns zunächst sehen, wie Percona Toolkits installiert werden, um pt-pg-summary verwenden zu können. In diesem Fall verwenden wir CentOS 7 und PostgreSQL 12.

Installieren Sie das Percona-Repository:

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

Nachdem Sie das Repository installiert haben, sollten Sie in der Lage sein, das Paket percona-toolkit zu installieren:

$ yum install percona-toolkit

Jetzt müssen Sie es nur noch mit den richtigen Parametern ausführen.

$ 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

Ausführen von Percona-Toolkits

Wenn Sie dieses Tool ausführen, sehen Sie eine Ausgabe, die nach den folgenden Kategorien gruppiert ist:

  • Datenbankport und Data_Directory
  • Liste der Tablespaces
  • Sklave und der Lag mit Meister
  • Cluster-Informationen
  • Datenbanken
  • Index-Cache-Trefferquoten
  • Tabellen-Cache-Trefferquoten
  • Liste der Wait_events für den gesamten Cluster – alle Datenbanken
  • Liste der Benutzer und client_addr oder client_hostname verbunden mit --all-databases
  • Zähler unterscheiden sich nach 10 Sekunden
  • Tabellenzugriff pro Datenbank
  • Instanzeinstellungen
  • Prozessstartbefehl

Lassen Sie uns es also auf einer PostgreSQL-Instanz ausführen, um ein Beispiel zu sehen:

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

Die erste Aktion besteht darin, die Informationen von Ihrem PostgreSQL-Server zu sammeln:

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

...

Dann werden alle gesammelten Informationen folgendermaßen angezeigt:

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

Jetzt haben Sie all diese Informationen, Sie können sie für verschiedene Zwecke wie Fehlerbehebung, Leistungsüberwachung oder sogar für einen Überblick über Ihre aktuelle Konfiguration verwenden. Sie können dies auch mit einem anderen Percona-Toolkit wie „pt-summary“ ergänzen, um mehr Informationen über das System zu erhalten, auf dem es ausgeführt wird.

Fazit

Percona Toolkit ist ein leistungsstarkes Tool, das Sie bei Datenbankverwaltungsaufgaben unterstützt. Mit pt-pg-summary können Sie jetzt Informationen über Ihre PostgreSQL-Instanz abrufen und diese in ein Überwachungssystem integrieren oder dieses Tool sogar mit einer anderen Percona-Toolkit-Komponente kombinieren, um noch mehr Informationen von Ihren Systemen zu sammeln. P>