Gem Rails PG Extras - PG 性能检查工具

hjiangwen · 2022年03月13日 · 最后由 hz_qiuyuanxin 回复于 2022年03月21日 · 658 次阅读

Gem 介绍

rails-pg-extras 是一个 PG 性能检查工具,基于 pg 内置的统计视图。作者是一名 Rails 以及 PG 性能咨询顾问。一般小团队都没有 DBA,后端开发用这个 gem 就能检查出一些问题~

rails-pg-extras 提供了以下功能(我只列出了使用频率高的):

  • 统计情况
    • 查看各表、索引大小以及行数
    • 查看各表的使用情况(多少顺序扫描)
    • 查看各表的缓存命中率(pg 的内存缓存放在 shared_buffers 中)
    • 未使用的索引(删掉它们)
    • null 值比例高的索引(把它们替换成非 null 的 partial index)
  • pg 实时情况
    • long running query
    • blocking query

下一步

这个 gem 只能基于 pg 内置的统计视图,查看 PG 最新的状态。但是我们通常对比历史数据,才能知道系统的好坏:1000qps 是好还是坏? 以下这些商业工具就是基于统计视图,提供了时间序列的查看方式:

因为有历史数据,我们就能查够查看系统的 Top SQL,比如:吞吐量最大的 query、最慢的 query、最耗 IO 的 query。这是 new relic 没提供的功能,new relic 只能查 top table,没有 query 粒度的监控。比如你在 new relic 只知道 users 表请求量最大,这些 query 来自哪些 API/job,但是你不知道具体是哪些 query

参考

。。。未完待续,要出门了

彩蛋

我贡献的一个 PR被采纳了。🎉 记录我的第二次开源贡献~

pghero 更好用一些

赞,有没有 mysql 的?

没有单元测试覆盖居然能合 😀

需要 登录 后方可回复, 如果你还没有账号请 注册新账号