Linux中提供了watch用于每隔n秒查看命令的输出,与PG的客户端工具结合起来可以监控数据库的活动信息。
实际上PG客户端也提供了watch工具每隔n秒监控命令的输出。
OS watch
[gauss2@k8s-master ~]$ gsql -r -d postgres -c "select version();"
version
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
PostgreSQL 9.2.4 (openGauss 2.0.0 build 4b6ee85b) compiled at 2021-05-13 18:07:53 commit 0 last mr debug on x86_64-unknown-linux-gnu, compiled by g++ (GCC) 7.3.0, 64-bit
(1 row)
[gauss2@k8s-master ~]$ watch -n 0.5 'gsql -r -d postgres -c "select datname,pid,sessionid,query from pg_stat_activity;"'
#命令输出
Every 0.5s: gsql -r -d postgres -c "select datname,pid,sessionid,query from pg_stat_activity;" Fri Sep 17 14:57:31 2021
datname | pid | sessionid | query
----------+-----------------+-----------------+-----------------------------------------------------------
postgres | 139668357572352 | 320 | select datname,pid,sessionid,query from pg_stat_activity;
postgres | 139663247058688 | 139663247058688 |
postgres | 139663098095360 | 139663098095360 |
postgres | 139663114876672 | 139663114876672 |
postgres | 139663131657984 | 139663131657984 | WLM fetch collect info from data nodes
postgres | 139663230277376 | 139663230277376 |
postgres | 139663213496064 | 139663213496064 |
postgres | 139663263840000 | 139663263840000 |
postgres | 139663297402624 | 139663297402624 |
(9 rows)
PG 13 watch
testdb=# select datname,pid,query from pg_stat_activity;\watch 5
datname | pid | query
---------+------+-------------------------------------------------
| 2209 |
| 2211 |
testdb | 2214 | select datname,pid,query from pg_stat_activity;
| 2207 |
| 2206 |
| 2208 |
(6 rows)
Fri 17 Sep 2021 02:59:13 PM CST (every 5s)
datname | pid | query
---------+------+-------------------------------------------------
| 2209 |
| 2211 |
testdb | 2214 | select datname,pid,query from pg_stat_activity;
| 2207 |
| 2206 |
| 2208 |
(6 rows)
......