yuan-er

导航

 

ALM-5023110 云数据库 GaussDB 节点CPU使用率过高

告警解释

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

告警属性

告警ID

告警级别

告警类型

告警归属

业务类型

是否可自动清除

5023110

重要

业务质量告警

租户面

云数据库 GaussDB 节点

告警参数

类别

参数名称

参数含义

定位信息

区域

产生告警的资源所属区域

云数据库 GaussDB 节点名称

产生告警的数据库实例节点名称

云数据库 GaussDB 节点ID

产生告警的数据库实例节点资源ID

附加信息

 

 

 

 

 

 

 

门限值

产生告警的指标监控门限值

当前值

产生告警的指标当前值

可能影响

产生当前告警对系统的可能影响

级别

产生告警的级别

云数据库 GaussDB节点

产生告警的数据库实例节点ID

云数据库 GaussDB实例

产生告警的数据库实例ID

阈值规则名称

产生告警的阈值告警规则名称

对系统的影响

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

       

      user请替换为实际的系统管理员账号,此处需要输入密码。

      • 分布式登录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');

       

      • 开始和结束时间根据实际情况修改。
      • 须在系统库中查询,用户库无法查询。
    3. 联系用户,根据业务情况,优化或者终止慢SQL。

     

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

告警清除

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

参考信息

不涉及。

 
posted on 2024-09-26 09:36  数据库笔记  阅读(30)  评论(0)    收藏  举报