Postgresql 监控你说了不算,谁说了算? (4 PG_TOP and pg_activity)

Postgresql 的监控其实有很多即时的软件可以进行监控,今天会介绍PG_TOP  和PG_Activity 即时监控和处理部分操作的工具。

https://centos.pkgs.org/7/epel-x86_64/pg_top-3.7.0-5.el7.x86_64.rpm.html

1  PG_TOP  这个工具本身和LINUX  TOP的命令有类似的功效,下载的地址在上面已经给出。安装时请先安装PGDG环境,否则RPM 包安装时会有依赖包找不到的情况。

可以给pg_top 建立一个账号,只赋予 pg_monitor 的权限即可

执行命令后,就能看到上面的图片的样子

pg_top -h ip 地址 -p 5432 -U 用户 -W -C -i

上面的第一行 load avg 中的三个数 分别是1 分钟,5分钟 ,15分钟

第二行 显示 6个进程与数据库有关

第三行 是与CPU 和I/O 有关的参数

第四行 内存的使用

第五行 显示当前的TPS 回滚的事务数 buffer HIT的百分比,多少行正在被读和多少行被写

并且最下方还会显示与数据库有关的process 的情况

另外还有一些常用的命令,例如键入 K ,在输入下面显示的连接进程,这样就会直接将正在的连接切断。

或者输入 o  然后输入 CPU ,或者SIZE , COMMAND 等命令,将正在显示的东西进行排序。

当然如果在扩展一下,可以将其封装成一个定时运行的命令,将当下的内容灌入到自定义的日志,可以在非人工的工作时间的一些东西记录,并可以解决当时例如系统崩溃时的问题解决,提供线索。

pg_top -h 192.168.198.80 -p 5432 -U pgtop -W -b -d 1 -x 10  > /pgdata/history

例如上面的命令可以10秒一次将相关的信息刷入到history文件中

另外PG_TOP 还有可以抓取当前你想看的线程正在执行语句的功能

按Q 键,然后输入你的线程号,就捕捉上图显示 4221 线程当前执行的命令

按L 键,然后输入你的线程号,则可以捕捉你当前执行命令所正在霸占得锁信息

按住i键 可以随时切换当前线程中 idle 和 非idle 的线程,过一段时间则直接还原都显示。

R 与 X 则分别是显示table  的  status 与 index 的状态

pg_top 的确是一个好的即使监控的工具,主要也用于出了问题时的监控与性能和问题分析。

当然PG_TOP 也有自己的不足,就是针对语句的显示上有不足,并且你在实时查看执行的语句时也有问题,虽然可以根据语句并导出,但你没有办法发现当前正在执行的语句中暂停显示,查看你觉得有问题的语句。那如果你对上面的查询分析工具不满意的情况下,可以使用下面的这个小工具

pg_activity 这个工具是通过python方式来针对你查询的问题发现和解决的一个小工具。

我们来看看这个工具能给你什么惊喜。下面这个图是就是pg_activity

执行也比较简单,在本地机安装后,直接在postgres的LINUX账号下,键入 pg_activity 就直接进入上面的界面了

下面是测试的程序,为什么要用测试的程序来,而不是手工去测,主要还是这个产品虽然能详细的输出执行的语句,并且还可以暂停动态显示,或者只查看被blocked语句,或者waiting queries 等,但如果语句执行的太快,他也是没有办法显示的,这个工具定位也是即时问题诊断工具,例如你会知道你当前的TPS 有多少,并且相关的内存,连接数,IO ,read ,write 等情况,对于分析当时故障时有帮助的。同时也可以对你感兴趣的参数进行排序。特别利于查询,某个服务器的性能比较糟糕,你要对语句进行分析的情况下,有什么预计在等待,有什么语句在blocked

这个工具本身安装也是比较简单,支持python3

直接在postgres账户下,pip3 install pg_activity 就可以安装上,当然如果你发现安装不上那可能有以下问题

1 请你安装python-3-devel   --yum

2 请你安装pycopg2              --pip3

3 请你安装psycopg2-binary --pip3

等响应的包

如果对python 连 PG 敢兴趣,可以去下面的地方,里面有一些py 连接pg的脚本


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值