Percona Toolkit je výkonný, bezplatný a open source produkt vyvinutý společností Percona. Jedná se o soubor nástrojů příkazového řádku, které vám umožňují provádět různé MySQL, MongoDB, PostgreSQL a systémové úlohy, které jsou obecně příliš složité na ruční provádění. Podporuje Percona Server pro MySQL, MySQL, MariaDB, PostgreSQL, Percona Server pro MongoDB a MongoDB.
V tomto blogu vám ukážeme, jak nainstalovat Percona Toolkit a jak používat nový nástroj přidaný nedávno do balíčku Percona Toolkit s názvem pt-pg-summary.
Instalace sad Percona Toolkit
Nejprve se podívejme, jak nainstalovat Percona Toolkits, abyste mohli používat pt-pg-summary. V tomto případě použijeme CentOS 7 a PostgreSQL 12.
Nainstalujte úložiště Percona:
$ yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
Po instalaci úložiště byste měli být schopni nainstalovat balíček percona-toolkit:
$ yum install percona-toolkit
Nyní jej stačí spustit se správnými parametry.
$ 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
Spuštění sad nástrojů Percona
Když spustíte tento nástroj, uvidíte výstup seskupený podle následujících kategorií:
- Databázový port a datový_adresář
- Seznam tabulkových prostorů
- Slave and the lag with Master
- Informace o klastru
- Databáze
- Poměry přístupů do mezipaměti indexu
- Poměry přístupů do mezipaměti tabulky
- Seznam událostí Wait_events pro celý Cluster – všechny databáze
- Seznam uživatelů a client_addr nebo client_hostname připojených k --all-databases
- Počítadla se liší po 10 sekundách
- Přístup k tabulkám podle databáze
- Nastavení instance
- Zpracuje příkaz ke spuštění
Pojďme to spustit na instanci PostgreSQL, abychom viděli příklad:
$ pt-pg-summary -hlocalhost -p5432 -Uadmindb
První akcí je shromáždit informace z vašeho PostgreSQL serveru:
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
...
Potom zobrazí všechny shromážděné informace tímto způsobem:
##### --- 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
Nyní máte všechny tyto informace a můžete je použít k různým účelům, jako je odstraňování problémů, sledování výkonu nebo dokonce k získání přehledu o vaší aktuální konfiguraci. Můžete to také doplnit dalším Percona Toolkit, jako je „pt-summary“, abyste měli více informací o systému, kde běží.
Závěr
Percona Toolkit je výkonný nástroj, který vám pomůže s úkoly správy databází. Nyní s pt-pg-summary budete moci mít informace o své instanci PostgreSQL a můžete je integrovat do monitorovacího systému nebo dokonce tento nástroj zkombinovat s jinou komponentou Percona Toolkit, abyste shromáždili ještě více informací ze svých systémů.