文档首页> 数据仓库服务 GaussDB(DWS)> 管理指南> 监控与告警> 告警管理> 告警处理> DWS_2000000006 节点数据盘使用率超阈值(Node Data Disk Usage Exceeds the Threshold)
更新时间:2024-03-28 GMT+08:00

DWS_2000000006 节点数据盘使用率超阈值(Node Data Disk Usage Exceeds the Threshold)

告警解释

GaussDB(DWS)每30秒采集集群各节点所有磁盘的使用情况。

  • 如果存在磁盘最近10分钟(可配置)内的最大使用率超过80%(可配置),则上报节点数据盘使用率超阈值的重要告警;如果平均使用率低于75%(即上报阈值减去5%),则消除该重要告警。
  • 如果存在磁盘最近10分钟(可配置)内的最大使用率超过85%(可配置),则上报节点数据盘使用率超阈值的紧急告警;如果平均使用率低于80%(即上报阈值减去5%),则消除该紧急告警。

如果存在磁盘的最大使用率一直大于上报阈值,那么在24小时(可配置)后将再次发起告警。

告警属性

告警ID

告警级别

是否可自动清除

DWS_2000000006

紧急/重要

告警参数

参数名称

参数含义

告警源

产生告警的系统名称。例如:DWS。

集群名称

产生告警的集群名称。

定位信息

产生告警的集群ID、集群名称、实例ID、实例名称。例如,cluster_id: xxxx-xxxx-xxxx-xxxx,cluster_name: test_dws,instance_id: xxxx-xxxx-xxxx-xxxx,instance_name: test_dws-dws-cn-cn-1-1

详细信息

产生告警的详细信息,包括集群、实例、磁盘、阈值信息。例如:CloudService=DWS, resourceId: xxxx-xxxx-xxxx-xxxx, resourceIdName: test_dws, instance_id: xxxx-xxxx-xxxx-xxxx,instance_name: test_dws-dws-cn-cn-2-1,host_name: host-192-168-1-122,disk_name: /dev/vdb,first_alarm_time: 2022-11-26 11:14:58; 节点10分钟内的平均数据磁盘使用率为84%,超过阈值80%。

产生日期

产生告警的时间。

状态

当前告警的处理状态。

对系统的影响

如果集群数据量或者业务临时下盘量增加,导致任意单盘磁盘使用率超过90%后,将触发集群的只读保护,影响客户业务的顺利执行。

可能原因

  • 业务数据量增长较快,集群磁盘容量配置无法满足业务需求。
  • 脏数据未及时清理。
  • 存在倾斜表。

处理步骤

  1. 检查各节点磁盘使用情况。

    1. 登录GaussDB(DWS)管理控制台。
    2. 在“告警管理”界面,单击右上角“集群选择”下拉框,选中当前集群,查看集群最近7天的告警信息。通过定位信息锁定触发告警的节点名称和磁盘信息。
    3. 在“集群 > 专属集群”界面找到告警集群,在所在行操作列单击“监控面板”进入到监控界面。
    4. 选择“监控 > 节点监控 > 磁盘”可查看当前集群节点各磁盘使用率的具体情况,如果想要查看某个节点某个磁盘的历史监控信息,可单击最右的监控按钮,查看最近1/3/12/24小时的磁盘性能指标。
      • 如果数据盘使用率出现短时间内上升然后恢复正常的情况,则说明是业务执行过程中的临时冲高,可通过2调整告警阈值的方式减少告警的上报。
      • 如果存在数据盘的使用率超过90%的情况,通常会触发只读,同时写类型业务报错“cannot execute INSERT in a read-only transaction”,此时可通过3清理无用数据。
      • 如果集群超过半数以上的数据盘使用率超过70%,则说明集群数据量较大,可通过4清理数据或磁盘扩容
      • 如果集群数据盘中最高和最低使用率相差超过10%,则通过5处理数据倾斜。

  2. 确认告警配置是否合理。

    1. 返回GaussDB(DWS)管理控制台,进入“告警管理 > 告警规则管理”界面。
    2. 在“节点数据盘使用率超阈值”规则所在行操作列单击“修改”进入“修改告警规则”界面,查看当前告警的配置参数。
    3. 调整告警阈值和检测周期配置项,其中上报阈值越大、检测周期越长,则告警的灵敏度越低;反之灵敏度越高。更详细的界面配置说明参考告警规则
    4. 如果数据盘配置较高,建议根据磁盘历史监控指标调大阈值;否则执行其余步骤检查,如果仍无法缓解,则建议进行磁盘扩容

  3. 确认集群是否处于只读状态。

    1. 如果集群处于只读状态,立即停止写入任务,避免磁盘被写满造成数据丢失的风险。
    2. 返回GaussDB(DWS)管理控制台,选择“集群 > 专属集群”,然后在异常集群所在行的“集群状态”列,“只读”状态下单击解除只读
    3. 在弹出对话框中,确认无误后单击“确定”,对集群进行解除只读操作,详情请参见集群只读
    4. 解除只读成功后,使用客户端连接数据库,通过DROP/TRUNCATE清理相关的无用数据。

      建议将磁盘使用率清理至70%以下。再参考45,确实是否有其他需要整改的表。

  4. 确认集群是否超过半数以上的数据盘使用率超过70%。

    1. 手动执行VACUUM FULL进行清理,详情请参见磁盘使用率高清理方式。连接数据库,执行以下SQL语句查询脏页率超过30%的表,并且按照表大小从大到小排序。
      1
      2
      3
      4
      5
      SELECT schemaname AS schema, relname AS table_name, n_live_tup AS analyze_count, pg_size_pretty(pg_table_size(relid)) as table_size, dirty_page_rate 
      FROM PGXC_GET_STAT_ALL_TABLES 
      WHERE schemaName NOT IN ('pg_toast', 'pg_catalog', 'information_schema', 'cstore', 'pmk') 
      AND dirty_page_rate > 30 
      ORDER BY table_size DESC, dirty_page_rate DESC;
      
      该SQL可能的执行结果示例如下(有一张表脏页率较高):
      1
      2
      3
      4
       schema | table_name | analyze_count | table_size | dirty_page_rate 
      --------+------------+---------------+------------+-----------------
       public | test_table |          4333 | 656 KB     |           71.11
      (1 row)
      
    2. 如果SQL有回显结果,则对脏页率较高的表串行执行清理操作:
      1
      VACUUM FULL ANALYZE schema.table_name
      

      由于VACUUM FULL操作会占用额外的整理空间(表大小 * (1 - 脏页率)),将导致磁盘使用率临时上涨然后下降,执行时应确保磁盘距离触发集群只读剩余足够的空间,因此建议从相对较小的表开始处理。此外,VACUUM FULL会持有排他锁,期间对操作表的访问会阻塞,应合理安排执行时间,避免影响业务。

    3. 如果SQL没有回显结果,说明无脏页率较高的表,可根据以下数仓类型,对集群进行节点扩容或磁盘扩容,避免磁盘使用进一步增长后触发只读导致业务中断。
      1. 标准数仓+SSD云盘、实时数仓、IoT数仓:参考 磁盘扩容
      2. 标准数仓+SSD本地盘及老的标准数仓(不支持磁盘扩容):参考集群 扩容集群

  5. 确认集群数据盘中最高和最低使用率相差是否超过10%

    1. 如果数据盘使用率相差较大,连接数据库,执行以下SQL语句查询集群是否存在倾斜表。
      1
      SELECT schemaname, tablename, pg_size_pretty(totalsize), skewratio FROM pgxc_get_table_skewness WHERE skewratio > 0.05 ORDER BY totalsize desc;
      
      该SQL可能的执行结果示例如下:
      1
      2
      3
      4
      5
      6
      7
       schemaname |      tablename      | pg_size_pretty | skewratio 
      ------------+---------------------+----------------+-----------
       scheduler  | workload_collection | 428 MB         |      .500
       public     | test_table          | 672 KB         |      .429
       public     | tbl_col             | 104 KB         |      .154
       scheduler  | scheduler_storage   | 32 KB          |      .250
      (4 rows)
      
    2. 如果SQL有回显结果,根据表的大小和倾斜率,将倾斜严重的表重新选择分布列,8.1.0及以上版本直接通过ALTER TABLE语法进行调整,其他版本参见如何调整分布列?

告警清除

磁盘使用率下降后,自动消除告警。