暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PolarDB dbatools 监控工具详解

PolarDB 2025-12-26
679

PolarDB dbatools 监控工具详解

PolarDB 源码中提供了一个监控工具: src/bin/polar_tools/dbatools.sql
 , 下面详细介绍其中的SQL用法.

基础架构

该文件首先创建了一个工具管理框架  :

  • polar_tools_info
     表存储工具的元信息(名称、示例、说明、分类)
  • polar_load_tool_comment
     过程用于注册工具信息
  • polar_tools
     视图展示所有已注册的工具

帮助命令

1. list_command

列出所有可用命令  :

execute list_command(0);  -- 不显示 SQL 语句  
execute list_command(1);  -- 显示完整 SQL 语句  

2. command_stats

显示各类别命令的统计信息  :

execute command_stats;  

3. list_command_by_category

按类别列出命令  :

execute list_command_by_category('Monitor');  

WAL 监控

4. wal_size_check

检查 WAL 大小的原因  :

  • 检查 wal_keep_segments
     配置的影响
  • 识别不活跃或延迟过大的复制槽
  • 提供具体的处理建议

连接监控

5. active_session_by_waitevent

按等待事件统计活跃会话  :

execute active_session_by_waitevent;  

显示各种等待事件的分布,帮助识别性能瓶颈。

6. connections_by_clients

按客户端 IP 统计连接数  :

execute connections_by_clients;  

帮助识别连接来源和潜在的连接泄露。

锁监控

7. query_locking

详细的锁冲突分析  :

  • 识别等待锁的进程(t_wait)
  • 识别持有锁的进程(t_run)
  • 找出存在冲突的锁对(t_overlap)
  • 按锁模式优先级排序显示冲突详情

长查询监控

8. top_n_long_queries

运行时间最长的查询  :

execute top_n_long_queries(10);  

显示当前正在执行的长时间运行的查询。

9. top_n_long_txn

运行时间最长的事务  :

execute top_n_long_txn(10);  

与长查询类似,但按事务开始时间排序。

10. top_n_long_queries_in_hist

历史平均执行时间最长的查询  :

execute top_n_long_queries_in_hist(10);  

基于 pg_stat_statements
 的历史统计数据。

恢复信息

11. query_recovery_info

检查点和恢复 LSN 信息  :

  • WP (Write Position): 当前 WAL 插入位置
  • AP (Apply Position): 最旧的应用位置
  • CP (Consistent Position): 一致性位置
  • REDO: 检查点 REDO 位置
  • 计算各位置间的延迟量

VACUUM 监控

12. top_n_dead_tuple_ratio_tables

死元组比例最高的表  :

execute top_n_dead_tuple_ratio_tables(10);  

识别需要执行 VACUUM 的表,包含:

  • 表大小
  • 死元组/活元组比例
  • 最后 VACUUM 时间

使用建议

  1. 定期执行:建议定期运行这些监控命令,建立性能基线
  2. 告警设置:对关键指标(如锁等待、长事务、死元组比例)设置告警阈值
  3. 历史记录:将监控结果保存到历史表,便于趋势分析
  4. 自动化:可以将这些命令集成到监控系统中自动执行

Notes

  • 所有命令都使用 PREPARE
     预编译,提高执行效率
  • 工具信息存储在 polar_tools_info
     表中,便于管理和查询
  • 部分命令需要 pg_stat_statements
     扩展支持
  • 锁监控查询较为复杂,提供了详细的锁冲突分析视图

文章转载自PolarDB,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论