DWS_2000000006 节点数据盘使用率超阈值(Node Data Disk Usage Exceeds the Threshold)
告警解释
GaussDB(DWS)每30秒采集集群各节点所有磁盘的使用情况。
- 如果存在磁盘最近10分钟(可配置)内的最大使用率超过80%(可配置),则上报节点数据盘使用率超阈值的重要告警;如果平均使用率低于75%(即上报阈值减去5%),则消除该重要告警。
- 如果存在磁盘最近10分钟(可配置)内的最大使用率超过85%(可配置),则上报节点数据盘使用率超阈值的紧急告警;如果平均使用率低于80%(即上报阈值减去5%),则消除该紧急告警。
如果存在磁盘的最大使用率一直大于上报阈值,那么在24小时(可配置)后将再次发起告警。
告警属性
告警ID |
告警归属 |
告警级别 |
告警类型 |
业务类型 |
是否可自动清除 |
---|---|---|---|---|---|
DWS_2000000006 |
管理面 |
>85% 紧急, >80% 重要 |
操作告警 |
数据仓库服务 |
是 |
告警参数
类别 |
参数名称 |
参数含义 |
---|---|---|
定位信息 |
名称 |
DWS集群节点数据磁盘使用率超阈值。 |
类型 |
操作告警。 |
|
发生时间 |
告警发生时间。 |
|
附加信息 |
集群ID |
集群resourceId、domain_id等详细信息。 |
对系统的影响
如果集群数据量或者业务临时下盘量增加,导致任意单盘磁盘使用率超过90%后,将触发集群的只读保护,影响客户业务的顺利执行。
可能原因
- 业务数据量增长较快,集群磁盘容量配置无法满足业务需求。
- 脏数据未及时清理。
- 存在倾斜表。
处理步骤
- 检查各节点磁盘使用情况。
- 登录GaussDB(DWS)管理控制台。
- 在“监控 > 告警”界面,单击右上角“集群选择”下拉框,选中当前集群,查看集群最近7天的告警信息。通过定位信息锁定触发告警的节点名称和磁盘信息。
- 在“集群 > 专属集群”界面找到告警集群,在所在行操作列单击“监控面板”进入到监控界面。
- 选择“监控 > 节点监控 > 磁盘”可查看当前集群节点各磁盘使用率的具体情况,如果想要查看某个节点某个磁盘的历史监控信息,可单击最右的监控按钮,查看最近1/3/12/24小时的磁盘性能指标。
- 确认告警配置是否合理。
- 确认集群是否处于只读状态。
- 确认集群是否超过半数以上的数据盘使用率超过70%。
- 手动执行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)
- 如果SQL有回显结果,则对脏页率较高的表串行执行清理操作:
1
VACUUM FULL ANALYZE schema.table_name
由于VACUUM FULL操作会占用额外的整理空间(表大小 * (1 - 脏页率)),将导致磁盘使用率临时上涨然后下降,执行时应确保磁盘距离触发集群只读剩余足够的空间,因此建议从相对较小的表开始处理。此外,VACUUM FULL会持有排他锁,期间对操作表的访问会阻塞,应合理安排执行时间,避免影响业务。
- 如果SQL没有回显结果,说明无脏页率较高的表,可根据以下数仓类型,对集群进行节点扩容或磁盘扩容,避免磁盘使用进一步增长后触发只读导致业务中断。
- 手动执行VACUUM FULL进行清理,详情请参见磁盘使用率高清理方式。连接数据库,执行以下SQL语句查询脏页率超过30%的表,并且按照表大小从大到小排序。
- 确认集群数据盘中最高和最低使用率相差是否超过10%。
- 如果数据盘使用率相差较大,连接数据库,执行以下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)
- 如果SQL有回显结果,根据表的大小和倾斜率,将倾斜严重的表重新选择分布列,8.1.0及以上版本直接通过ALTER TABLE语法进行调整,其他版本参见如何调整分布列?
- 如果数据盘使用率相差较大,连接数据库,执行以下SQL语句查询集群是否存在倾斜表。
告警清除
磁盘使用率下降后,自动消除告警。