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

[复制链接]
发表于 2023-4-7 13:06:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
摘要:本文主要通过实例讲解如何通过gs_cpuwatcher.sh 脚本寻找CPU占用高语句。
本文分享自华为云社区《GaussDB(DWS) gs_cpuwatcher.sh 脚本如何寻找CPU占用高语句》,作者:fighttingman。
【工具名称】

gs_cpuwatcher
【功能描述】

1.寻找集群内节点占用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个字符,可以对截取字符串进行修改,需要修改脚本
字段解释:


  • dur :执行时长
  • start:sql的起始时间
  • state_change:sql状态改变时间
  • usename:用户名称
  • datname:连的数据库名称
  • query_id:sql的唯一标识id
  • pid:线程id
  • client_addr:客户端连的ip
  • state:sql的执行状态
  • lwtid:线程小号
  • wait_status:等待视图中的等待状态字段
  • substr:sql字段
 
点击关注,第一时间了解华为云新鲜技术~
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表