前言
DTC 大会昨日已经圆满结束,原本打算在 DTC 上分享《深入浅出 vacuum 内核原理》,可惜由于加班,未能赴约,不过 PostgreSQL 大会也已在骑马赶来的路上 (具体请留意中文社区官微),那就在 PostgreSQL 大会上再分享吧!
这两天在冲浪的时候,发现几个好用的小工具,其中 pg_collector 值得说道说道,5 秒快速上手,生成一份小而精悍的巡检报告。之前曾分享过另一款类似的巡检工具 pg_gather,详情戳👉🏻 一款不错的巡检工具
pg_collector
pg-collector collects database information and presents it in a consolidated HTML file
pg_collector 是纯 SQL 脚本,也就意味着你可以按需加工,并且十分简单,照猫画虎,添加自己的巡检项。目前 pg_collector 支持到了 14,不过都大差不差,安装指定版本即可
1 | [postgres@mypg pg-collector-pg-collector-V1-for-PostgreSQL-14]$ ll |
安装之后会有一个 pg_collector.sql (此处基于 16 版本进行演示),为什么我会说 5 秒呢?没错,只需要运行一下 pg_collector.sql 即可
1 | [postgres@mypg pg-collector-pg-collector-V1-for-PostgreSQL-14]$ psql |
此处有点不兼容,自己改造一下即可,执行完成之后,在 /tmp 目录下会生成一份 html 报告。由于巡检项较多,报告中大致包含如下内容:
- 数据库大小,使用情况
- 年龄使用
- 表、索引、序列使用情况:包含常规统计数据,以及膨胀,重复索引等
- 数据库负载
- vacuum/analyze,还很贴心的进行了可视化,展示清理和分析进度
- 流复制,复制槽
- 2pc
- 锁等待
- Toast Tables Mapping,这一点很方便
- 等待事件,等待事件将以往的”NULL”给改成了CPU,便于理解
各位可以自行体验,此处就不再赘述。
小结
pg_collector 和 pg_gather 类似,都是纯 SQL 巡检工具,包括了大多数的日常运维关心项,并且可以很容易基于其进行二次开发,pg_collector 相较于 pg_gather 的巡检项更多,pg_gather 会多一项”重要事件发现”,即告诉你巡检过程中发现的一些值得你关注的点,十分 nice 的一个小特性。