# DWS_2000000006 DWS集群节点数据盘使用率超阈值
#### 告警解释
DWS每30秒采集集群各节点所有磁盘的使用情况。
- 如果存在磁盘最近10分钟（可配置）内的最大使用率超过80%（可配置），则上报节点数据盘使用率超阈值的重要告警；如果平均使用率低于75%（即上报阈值减去5%），则消除该重要告警。
- 如果存在磁盘最近10分钟（可配置）内的最大使用率超过85%（可配置），则上报节点数据盘使用率超阈值的紧急告警；如果平均使用率低于80%（即上报阈值减去5%），则消除该紧急告警。
![](https://support.huaweicloud.com/mgtg-dws/public_sys-resources/note_3.0-zh-cn.png)
如果存在磁盘的最大使用率一直大于上报阈值，那么在24小时（可配置）后将再次发起告警。
#### 告警属性
| **告警ID**       | 告警归属 | **告警级别**           | 告警类型  | 业务类型      | 是否可自动清除 |
|:---|:---|:---|:---|:---|:---|
| DWS_2000000006 | 租户面  | \>88% 紧急， \>80% 重要 | 操作告警 | 数据仓库服务 | 是       |
   
#### 告警参数
| 类别     | **参数名称** | **参数含义**                    |
|:---|:---|:---|
| 定位信息  | 名称           | DWS集群节点数据磁盘使用率超阈值。           |
| 定位信息  | 类型        | 操作告警。                        |
| 定位信息  | 发生时间       | 告警发生时间。                      |
| 附加信息 | 集群ID       | 集群resourceId、domain_id等详细信息。 |
   
#### 告警指标
调用[获取指定指标相关采集数据 - ListMetricsData](https://support.huaweicloud.com/api-dws/ListMetricsData.html)API接口获取该告警指标，其中接口中的指标名称为**FileSystemStat**。
- **请求示例** ：
  ```
  GET https://{Endpoint}/v1/{project_id}/clusters/{cluster_id}/dms/metrics/FileSystemStat?offset=0&limit=1&from=1786782138946&to=1786782238946&order_by=ctime&sort_by=desc
  ```
  
- **响应示例** **：**
  告警指标为响应结果中的**100 \* (used/total)**，其中used表示已使用容量（单位：KB）；total表示总容量（单位：KB）。
  ```
  {
   "code": 0,
   "msg": "OK",
   "data": [
    {
     "total": 104806400,
     "virtual_cluster_id": 81882,
     "used_percentage": 9,
     "available": 96212012,
     "ctime": 1786782158000,
     "disk_fs_name": "/dev/vdb",
     "used": 8594388,
     "host_id": 83729
    }
   ],
   "count": 63
  }
  ```
  
 
#### 对系统的影响
如果集群数据量或者业务临时下盘量增加，导致任意单盘磁盘使用率超过90%后，将触发集群的只读保护，影响客户业务的顺利执行。
#### 可能原因
- 业务数据量增长较快，集群磁盘容量配置无法满足业务需求。
- 脏数据未及时清理。
- 存在倾斜表。
 
#### 处理步骤
1. **检查各节点磁盘使用情况。**
   
   1. [登录DWS管理控制台](https://console.huaweicloud.com/dws)。
   
   2. 在"告警管理"界面，单击右上角"集群选择"下拉框，选中当前集群，查看集群最近7天的告警信息。通过定位信息锁定触发告警的节点名称和磁盘信息。
   
   3. 在"集群 \> 集群列表"界面找到告警集群，在所在行操作列单击"监控面板"进入到监控界面。
   
   4. 选择"监控 \> 节点监控 \> 磁盘"可查看当前集群节点各磁盘使用率的具体情况，如果想要查看某个节点某个磁盘的历史监控信息，可单击最右的监控图标![](https://support.huaweicloud.com/mgtg-dws/figure/zh-cn_image_0000002587065636.jpg)，查看最近1/3/12/24小时的磁盘性能指标。
      ![](https://support.huaweicloud.com/mgtg-dws/figure/zh-cn_image_0000002617505221.png "点击放大")
      - 如果数据盘使用率出现短时间内上升然后恢复正常的情况，则说明是业务执行过程中的临时冲高，可通过[2]调整告警阈值的方式减少告警的上报。
      
      - 如果存在数据盘的使用率超过90%的情况，通常会触发只读，同时写类型业务报错"**cannot execute INSERT in a read-only transaction** "，此时可通过[3]清理无用数据。
      
      - 如果集群超过半数以上的数据盘使用率超过70%，则说明集群数据量较大，可通过[4]清理数据或[磁盘扩容](https://support.huaweicloud.com/mgtg-dws/dws_01_0828.html)。
      
      
      
      - 如果集群数据盘中最高和最低使用率相差超过10%，则通过[5]处理数据倾斜。
        
   
   
   
   
2. **确认告警配置是否合理。**
   
   1. 返回DWS管理控制台，进入"监控 \> 告警 \> 告警规则管理"界面。
   
   2. 在"节点数据盘使用率超阈值"规则所在行操作列单击"修改"进入"修改告警规则"界面，查看当前告警的配置参数。
   
   3. 调整告警阈值和检测周期配置项，其中上报阈值越大、检测周期越长，则告警的灵敏度越低；反之灵敏度越高。更详细的界面配置说明参考[告警规则](https://support.huaweicloud.com/mgtg-dws/dws_01_1242.html)。
   
   4. 如果数据盘配置较高，建议根据磁盘历史监控指标调大阈值；否则执行其余步骤检查，如果仍无法缓解，则建议进行[磁盘扩容](https://support.huaweicloud.com/mgtg-dws/dws_01_0828.html)。
   
   
   
   
3. **确认集群是否处于只读状态。**
   
   1. 如果集群处于只读状态，立即停止写入任务，避免磁盘被写满造成数据丢失的风险。
   
   2. 返回DWS管理控制台，选择"集群 \> 集群列表"，然后在异常集群所在行的"集群状态"列，"只读"状态下单击"解除只读"。
   
   3. 在弹出对话框中，确认无误后单击"确定"，对集群进行解除只读操作，详情请参见[集群只读](https://support.huaweicloud.com/mgtg-dws/dws_01_0035.html)。
   
   4. 解除只读成功后，使用客户端连接数据库，通过[DROP](https://support.huaweicloud.com/sqlreference-dws/dws_06_0208.html)/[TRUNCATE](https://support.huaweicloud.com/sqlreference-dws/dws_06_0225.html)清理相关的无用数据。
      ![](https://support.huaweicloud.com/mgtg-dws/public_sys-resources/note_3.0-zh-cn.png)
      建议将磁盘使用率清理至70%以下。再参考[4]和[5]，确认是否有其他需要整改的表。
      
   
   
   
   
4. **确认集群是否超过半数以上的数据盘使用率超过70%。**
   
   1. 手动执行VACUUM FULL进行清理，详情请参见[磁盘使用率高清理方式](https://support.huaweicloud.com/trouble-dws/dws_09_0031.html#ZH-CN_TOPIC_0000001392836237__section899816612415)。连接数据库，执行以下SQL语句查询脏页率超过30%的表，并且按照表大小从大到小排序。
      ```
      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可能的执行结果示例如下（有一张表脏页率较高）：
      ```
      schema | table_name | analyze_count | table_size | dirty_page_rate 
      --------+------------+---------------+------------+-----------------
       public | test_table |          4333 | 656 KB     |           71.11
      (1 row)
      ```
      
   
   2. 如果SQL有回显结果，则对脏页率较高的表串行执行清理操作：
      ```
      VACUUM FULL ANALYZE schema.table_name
      ```
      ![](https://support.huaweicloud.com/mgtg-dws/public_sys-resources/notice_3.0-zh-cn.png)
      由于VACUUM FULL操作会占用额外的整理空间（表大小 \* (1 - 脏页率)），**将导致磁盘使用率临时上涨然后下降**，执行时应确保磁盘距离触发集群只读剩余足够的空间，因此建议从相对较小的表开始处理。此外，VACUUM FULL会持有排他锁，期间对操作表的访问会阻塞，应合理安排执行时间，避免影响业务。
      
   
   3. 如果SQL没有回显结果，说明无脏页率较高的表，可根据以下数仓类型，对集群进行节点扩容或磁盘扩容，避免磁盘使用进一步增长后触发只读导致业务中断。
      1. 存算一体+SSD云盘：参考[磁盘扩容](https://support.huaweicloud.com/mgtg-dws/dws_01_0828.html)。
      
      2. 存算一体+SSD本地盘：参考集群[扩容集群](https://support.huaweicloud.com/mgtg-dws/dws_01_0023.html)。
       
   
   
   
   
5. **确认集群数据盘中最高和最低使用率相差是否超过10%** 。
   
   1. 如果数据盘使用率相差较大，连接数据库，执行以下SQL语句查询集群是否存在倾斜表。
      ```
      SELECT schemaname, tablename, pg_size_pretty(totalsize), skewratio FROM pgxc_get_table_skewness WHERE skewratio > 0.05 ORDER BY totalsize desc;
      ```
      该SQL可能的执行结果示例如下：
      ```
      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](https://support.huaweicloud.com/sqlreference-dws/dws_06_0142.html)语法进行调整，其他版本参见[如何调整分布列？](https://support.huaweicloud.com/dws_faq/dws_03_2126.html)
   
   
   
   
 
#### 告警清除
磁盘使用率下降后，自动消除告警。
