摘要:本文主要通过实例讲解如何通过gs_cpuwatcher.sh 脚本寻找CPU占用高语句。

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

【工具名称】

gs_cpuwatcher

【功能描述】

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

【使用场景】

  1. CPU sys使用率高
  2. 业务整体慢

【参数说明】

无

【使用方法】

  1. 直接后台执行命令

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字段

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

GaussDB(DWS)集群中寻找节点CPU占用高的语句的更多相关文章

  1. docker swarm英文文档学习-7-在集群中管理节点

    Manage nodes in a swarm在集群中管理节点 List nodes列举节点 为了查看集群中的节点列表,可以在管理节点中运行docker node ls: $ docker node ...

  2. 一:MetaMq集群中单个节点的安装配置示意图

    MetaMQ集群一个节点的安装和配置示意图[1]:下载metaMQ的安装包

  3. 修改cdh5集群中主机节点IP或hostName

    前言 在使用cdh集群过程中,难免会因为某些不可抗拒的原因导致节点IP或hostName变动,而cm的监控界面无法完成这些事情,但是cm将集群中所有的主机的信息都存在postgresql数据库的hos ...

  4. 如何在 Linux 中找出 CPU 占用高的进程

    1) 怎样使用 top 命令找出 Linux 中 CPU 占用高的进程 在所有监控 Linux 系统性能的工具中,Linux 的 top 命令是最好的也是最知名的一个.top 命令提供了 Linux ...

  5. 在 Linux 中找出 CPU 占用高的进程

    列出系统中 CPU 占用高的进程列表来确定.我认为只有两种方法能实现:使用 top 命令 和 ps 命令.出于一些理由,我更倾向于用 top 命令而不是 ps 命令.但是两个工具都能达到你要的目的,所 ...

  6. 如何确定Redis集群中各个节点的主从关系

    1.首先通过命令(以192.168.203.141为例,-c代表集群的意思) ./redis-cli -h 192.168.203.141 -p 8001 -c 2.然后在输入  cluster no ...

  7. 记录一个奇葩的问题:k8s集群中master节点上部署一个单节点的nacos,导致master节点状态不在线

    情况详细描述; k8s集群,一台master,两台worker 在master节点上部署一个单节点的nacos,导致master节点状态不在线(不论是否修改nacos的默认端口号都会导致master节 ...

  8. 添加和删除hadoop集群中的节点

    参见 http://www.cnblogs.com/tommyli/p/3418273.html

  9. Redis集群中的节点如何保证数据一致

    主从复制: 1.redis的复制功能是支持多个数据库之间的数据同步.一类是主数据库(master)一类是从数据库(slave),主数据库可以进行读写操作,当发生写操作的时候自动将数据同步到从数据库,而 ...

  10. Kubernetes集群中修复状态为NotReady的节点

    度个假回来发现自己集群中的节点都挂了,全部是NotReady状态 但是除了.10节点外,其他主机并没有挂,可以远程连接上, 那就考虑是kubernetes系统的问题 解决的方法是重启kube-prox ...

随机推荐

  1. 轻松掌握组件启动之MongoDB(番外篇):高可用复制集架构环境搭建-mtools

    引言 在前两章节中,我们详细讲解了如何手动配置启动MongoDB.然而,现在有许多不同的工具可以帮助我们更方便地启动和创建MongoDB数据库.因此,今天我将介绍一个名为mtools的开源项目,它可以 ...

  2. JS个人总结(1)

    1. html页面引入js文件优先使用引入外部js文件. 2. 如果在html页面里使用<script></script>,则把js内容放在html内容下面,也就是</b ...

  3. DDD技术方案落地实践

    1. 引言 从接触领域驱动设计的初学阶段,到实现一个旧系统改造到DDD模型,再到按DDD规范落地的3个的项目.对于领域驱动模型设计研发,从开始的各种疑惑到吸收各种先进的理念,目前在技术实施这一块已经基 ...

  4. 如何使用 GTX750 或 1050 显卡安装 CUDA11+

    前言 由于兼容性问题,使得我们若想用较新版本的 PyTorch,通过 GPU 方式训练模型,也得更换较新版本得 CUDA 工具包.然而 CUDA 的版本又与电脑显卡的驱动程序版本关联,如果是低版本的显 ...

  5. 小景的Dba之路--压力测试和Oracle数据库缓存

    小景最近在做系统查询接口的压测相关的工作,其中涉及到了查询接口的数据库缓存相关的内容,在这里做一个汇总和思维发散,顺便简单说下自己的心得: 针对系统的查询接口,首次压测执行的时候TPS较低,平均响应时 ...

  6. Pooling与马赛克的秘密

      说到Pooling,相信学习过CNN的朋友们都不会感到陌生.Pooling在中文当中的意思是"池化",在神经网络当中非常常见,通常用的比较多的一种是Max Pooling,具体 ...

  7. 升级到 Pulsar3.0 后深入了解 JWT 鉴权

    背景 最近在测试将 Pulsar 2.11.2 升级到 3.0.1的过程中碰到一个鉴权问题,正好借着这个问题充分了解下 Pulsar 的鉴权机制是如何运转的. Pulsar 支持 Namespace/ ...

  8. 关于点赞业务对MySQL和Redis和MongoDB的思考

    点赞 ​ 在我个人理解中,点赞业务比较频繁,很多人业务可能都会有这个,比如:博客,视频,文章,动态,评论等,但是不应该是核心业务,不应该大量地请求MySQL数据库,给数据库造成大量的资源消耗,MySQ ...

  9. 【uniapp】【外包杯】学习笔记day06 | 微信小程序导航栏的制作并推送的到码云【黑】

    先创建分支 格式化快捷键 shift+alt+f

  10. React 中虚拟DOM是什么,为什么需要它?

    注意:本节主要讲React中的虚拟DOM,但是虚拟DOM并不是React中特有的内容. 1. React 中虚拟 DOM是什么? 虚拟DOM是对真实DOM的描述,虚拟DOM是JS对象,实际上就是 JS ...