(文档)第122讲:可视化监控利器 — pg_top使用全攻略


Pg_top功能介绍
pg_top 的主要功能:
• pg_top 的主要功能实时查看活动会话:显示每个数据库连接的活动会话信息,包括查询、状态、用户、数据库、客户端地址等。
• 监控资源使用:显示 PostgreSQL 实例的 CPU、内存和 I/O 资源使用情况。
• 显示锁和等待信息:帮助识别数据库中的锁争用和等待事件。
• 实时排序和筛选:可以按多种条件实时排序和筛选会话信息,如按 CPU 使用、内存使用、运行时间等。
• 查询缓存命中率:显示查询缓存命中率,帮助了解数据库缓存的有效性。
• 显示表和索引统计信息:提供表和索引的使用和性能统计信息。
pg_top安装
1、下载
https://github.com/markwkm/pg_top
2、安装依赖软件包
sudo apt install libbsd-dev
3、源码安装(适用于所有系统)
cmake -DCMAKE_INSTALL_PREFIX=/usr/local
make
make install
4、验证
pg_top
Pg_top使用方式
使用pg_top进行数据库监控。和登录本地数据库一样,设置-U指定登录用户,-d指定数据库,-h指定主机名,-p指定端口。

监控内容会显示进程数量。后台进程有多少个,活动的进程有多少个,idle的进程有多少个。还可以看到主机的cpu和内存使用情况。下面是当前PostgreSQL进程的pid,用户名,状态,XTIME代表事务时间,QTIME代表query执行时间,还有cpu百分比和锁的数量。后面的COMMAND代表进程和它的操作类型。

• 在进入监控的界面按h,还会出现隐藏的一些指令

• 按L输入进程号可以查看锁信息


• 例如按Q输入进程号可以查看单个进程执行SQL语句


• 按E可以查看该进程运行SQL的执行计划


• -x 后面指定次数,然后把该结果重定向到一个文件。通过grep对这个文件进行过滤,我们可以找出系统发生性能变化的准确时间点和波动的趋势
• pg_top -U postgres -d postgres -h localhost -p 5432 -x 10 > pg.out


• pg_top还可以监控remote主机的信息,这需要在remote主机上安装pg_proctab插件,只有安装插件才能查询remote主机的cpu、内存等信息,
git https://gitlab.com/pg_proctab/pg_proctab.git
cd pg_proctab
make && make install
[postgres@centos8 ~]$ psql
postgres=# create extension pg_proctab;
PostgreSQL中文社区认证
CUUG与工信部人才交流中心合作,推出PostgreSQL初/中/高级证书,证书中明确指定适用于信息技术应用创新人才岗位能力评定要求。


PostgreSQL从入门到精通,
系列课程始于23年初,
在周日19:30与大家分享PG技术,
从基础的PG介绍与安装,
到后续的调优、流复制等企业应用,
涉及90多个知识点的介绍与演示,
截至25年8月9日,
系列课程已讲100期,
欢迎继续关注PostgreSQL技术大讲堂,
如果你也有意学习PostgreSQL,
可以联系客服,领取相关资料。

·【2026.4.7】工信人才红头文件–关于开展PostgreSQL数据库管理员评测工作的通知
夜雨聆风