【工具名称】
gs_cpuwatcher
【功能描述】
1.寻找集群内节点占用CPU高的语句
【使用场景】
【参数说明】
无
【使用方法】
nohup sh gs_cpuwatcher.sh > cpuwatcher.log 2>&1 &
执行之前注意事项:
- 使用omm用户(线下)或者Ruby用户(线上)执行
- 将脚本放到一个磁盘空间充足的目录执行,防止把磁盘空间占满,脚本监控会产生日志,占用磁盘空间,磁盘空间最好大于20G
- 监控完之后kill这个监控进程,防止忘记这个脚本造成监控日志一直上涨,脚本默认保留3天的日志
- 脚本只有在进程的cpu使用率大于100(多核累加和)的时候才会进行查询cpu高的语句
【最佳实践&结果分析】
执行监控命令之后,检查当前目录生成的监控日志
查看日志cpu_watch_xxx.log日志,里边有记录占用CPU高的语句
日志里边记录了cpu占用高的语句,例如上图中select * from pg_class a, pg_class,脚本默认截取sql的前50个字符,可以对截取字符串进行修改,需要修改脚本