写点什么

GaussDB(DWS)集群中寻找节点 CPU 占用高的语句

  • 2023-04-07
    广东
  • 本文字数:596 字

    阅读完需:约 2 分钟

GaussDB(DWS)集群中寻找节点CPU占用高的语句

本文分享自华为云社区《GaussDB(DWS) gs_cpuwatcher.sh 脚本如何寻找CPU占用高语句》,作者:fighttingman。


【工具名称】


gs_cpuwatcher


【功能描述】


寻找集群内节点占用 CPU 高的语句


【使用场景】


  • CPU sys 使用率高

  • 业务整体慢


【参数说明】



【使用方法】


直接后台执行命令


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 个字符,可以对截取字符串进行修改,需要修改脚本



字段解释:


  1. dur :执行时长

  2. start:sql 的起始时间

  3. state_change:sql 状态改变时间

  4. usename:用户名称

  5. datname:连的数据库名称

  6. query_id:sql 的唯一标识 id

  7. pid:线程 id

  8. client_addr:客户端连的 ip

  9. state:sql 的执行状态

  10. lwtid:线程小号

  11. wait_status:等待视图中的等待状态字段

  12. substr:sql 字段


点击关注,第一时间了解华为云新鲜技术~

发布于: 刚刚阅读数: 4
用户头像

提供全面深入的云计算技术干货 2020-07-14 加入

生于云,长于云,让开发者成为决定性力量

评论

发布
暂无评论
GaussDB(DWS)集群中寻找节点CPU占用高的语句_数据库_华为云开发者联盟_InfoQ写作社区