查找GaussDB(DWS)集群中节点CPU占用率高的语句
【工具名称】
gs_cpuwatcher
【功能描述】
1.查找集群内节点CPU占用率高的语句
【使用场景】
- CPU系统占用率高
- 一般业务较慢
【参数说明】
无[无]
- 后台直接运行命令
nohup sh gs_cpuwatcher.sh > cpuwatcher.log 2>&1 &
运行前注意事项:
- 使用omm用户(离线)或用户omm(离线)运行
- 放置该脚本位于具有足够磁盘空间的目录中以防止执行。当磁盘空间满时,脚本监控会生成日志并占用磁盘空间。磁盘空间要大于20G
- 监控结束后杀掉监控进程,避免忘记脚本导致监控日志不断增加。脚本默认保留日志3天
- 当进程CPU使用率大于100(多核累计和)时,脚本才会查询高CPU语句

【最佳实践及结果分析】
执行watch命令后,查看当前目录生成Watch Log
查看日志cpu_watch_xxx.log。有些语句记录了高 CPU 使用率。
日志记录CPU占用率高的语句。例如,在上图中,select * from pg_class a, pg_class。该脚本默认拦截sql。中的前50个字符,可以更改截取的字符串,需要更改脚本
字段解释:
- dur:执行时间
- start:sql启动时间
- state_change status:state_change username:用户名
- datname:连接的数据库名称
- query_id:sql的唯一标识id
- pid:线程id
- client_addr:客户端连接ip♾s执行slwtid:线程小号
- wait_status:等待视图中的等待状态字段
- substr:sql 字段
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。