云数据库 GaussDB 节点CPU使用率过高怎么解决?

188 阅读5分钟

告警解释

=======

系统每一分钟检查云数据库 GaussDB所有节点的CPU使用率,当连续三次监测到CPU使用率超过设置的阈值90%(默认)时,产生此告警。

对系统的影响

GaussDB节点CPU使用率过高,实例节点响应变慢,导致SQL执行变慢或者超时。

可能原因

  1. 节点读写时延增加,CPU的io_wait明显增加,导致CPU使用率过高。
  2. 某个进程启动时占用CPU较多,导致CPU使用率过高,例如全量备份期间启动的gs_roach的master进程等。
  3. 线程池使用率明显增加,也可能触发CPU使用率过高。
  4. 某些SQL语句占用大量数据库开销,包括但不限于大量元组扫描、数据排序、表关联等,导致CPU使用率过高。

处理步骤

  1. 使用浏览器,通过地址“https://

    ManageOne运维面主页的访问地址

    :31943”,登录ManageOne运维面,或通过地址“https://

    ManageOne主门户的访问地址

    ”,登录ManageOne主门户,选择“运维中心(OC)”,进入ManageOne运维面。

    • 密码方式:输入账号和密码。
      • 默认账号:bss_admin

        对于从8.2.0或更早版本升级上来的ManageOne,默认账号为admin。

      • 默认密码:参见《华为云Stack 8.3.1 账户一览表》的“A类(Portal)”页签中,“ManageOne运维面”账户对应的默认密码。

    • USB Key方式:插入已预置用户证书的USB Key,选择设备和用户证书,并输入PIN码。
  2. 在“告警 > 告警管理 > 当前告警”中查看集中告警,获取告警中的实例ID或者工作ID。

  3. 在ManageOne运维面右下角“常用链接”栏中单击“ServiceCM”,跳转到ServiceCM插件列表界面。

  4. 在ServiceCM插件列表界面,单击“自助开发平台 > dbs-ops”,进入DBS运维管理平台。

  5. 根据告警定位信息处获取的实例ID信息,在DBS运维管理平台搜索对应实例,进入实例详情页。

  6. 查看当前实例是否有备份或其他工作流在进行。

  7. 登录运营面,查看发生告警时间段近3小时内的关键指标情况。

    1. 使用浏览器,通过账号地址“https://域名”登录运营面。

    2. 在左上角菜单服务列表找到云数据库GaussDB,单击进入实例列表页面。

    3. 根据获取的实例ID和节点ID,查看对应实例、对应节点。

    4. 单击发生告警节点的“查看监控指标”按钮,查看节点指标监控。

    5. 在节点指标监控页面的右上角搜索框中输入指标的关键字“CPU”,进行模糊查询。

    6. 观察CPU指标变化情况。

      • 如果当前业务处于高峰期,则CPU使用率会有所上升。结合业务情况判断是否需要扩容规格。
      • 如果非业务高峰期,则需要继续定位。
  8. 参考登录实例节点,登录发生告警的节点。

  9. 执行以下命令,查看进程占用情况。

    ps ux

    • 确认存在除gaussdb进程外大量占用CPU的进程,则需要确定是否为定期开启或者运维相关进程,如全量备份、重分布等。

      则根据业务情况决定是否终止对应任务/进程,或者限制进程的启动时间。

    • 如果不存在gaussdb进程外占用大量CPU的进程。则继续执行。

  10. 执行如下命令,查看当前节点的IO和CPU占用情况。

**iostat -ctmx 1**
确认CPU占比较高的项。如果io\_wait占比较大,需要确认对应节点的“数据盘每次读取花费的时间”指标是否较高或者有明显上涨。

如果确认有明显上涨,排查方法如下:

1.  联系底层运维,确认是否存在共宿主机问题。
    
    如果确认为共宿主机问题,则可以通过主备切换进行规避或者联系底层运维进行虚拟机迁移。
    
2.  排查业务语句是否占用大量IO开销。
    
    监控指标“数据磁盘读吞吐”、“数据磁盘写吞吐”和“IOPS”均同步上升。需要联系用户终止和优化SQL语句。
    

11. 排查是否为慢SQL导致CPU使用率过高。

1.  使用gsql连接系统库。
    
    **gsql -d** postgres **-p 8000 -U**
    
    user
    
    **\-r**
    
    ![](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/eb5cadccbe82433f9b07263b52e2c2bd~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgb3BlbkdhdXNz5bCP55m95oiQ6ZW_5pel6K6w:q75.awebp?rk3s=f64ab15b&x-expires=1772675013&x-signature=oLM41K8u%2FxlucsybYElK8AVqlek%3D)
    
    user请替换为实际的系统管理员账号,此处需要输入密码。
    
    ![](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/f5bfe1b7ad4448a69b753ffaa47429ad~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgb3BlbkdhdXNz5bCP55m95oiQ6ZW_5pel6K6w:q75.awebp?rk3s=f64ab15b&x-expires=1772675013&x-signature=re%2FgFbd9YSEyfbuWQknPHsNwOfE%3D)
    
    *   分布式登录CN节点,如果CPU占用率较高的节点上有CN组件,则应连接CPU占用率较高的节点,如果CPU占用率较高的节点不存在CN组件,则登录任意的CN节点。
    *   主备版登录主DN节点。
    
2.  执行如下命令,查看指定时间段的慢SQL。
    
    **select node\_name,substr(query,0,100) from dbe\_perf.get\_global\_slow\_sql\_by\_timestamp('**
    
    2023-01-17 09:25:55
    
    **','**
    
    2023-01-18 19:25:55
    
    **');**
    
    ![](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/0051eb831b094535a4e9cc1010ef739a~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgb3BlbkdhdXNz5bCP55m95oiQ6ZW_5pel6K6w:q75.awebp?rk3s=f64ab15b&x-expires=1772675013&x-signature=8Lnim3AnGK0qnhdGiia4OsTibbI%3D)
    
    ![](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/2277c96f5aa3442cb297403119b9b418~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgb3BlbkdhdXNz5bCP55m95oiQ6ZW_5pel6K6w:q75.awebp?rk3s=f64ab15b&x-expires=1772675013&x-signature=HVfLGQUDXrwBljHrSCO4%2F1JntRU%3D)
    
    *   开始和结束时间根据实际情况修改。
    *   须在系统库中查询,用户库无法查询。
    
3.  联系用户,根据业务情况,优化或者终止慢SQL。

12. 如果以上操作均无法解决此告警,联系技术支持进行处理。

告警清除

此告警修复后,系统会自动清除此告警,无需手工清除。

参考信息

不涉及。

更多详情请参考GaussDB 文档中心:doc.hcs.huawei.com/db/zh-cn/ga…