文档首页/ 数据仓库服务 GaussDB(DWS)/ 管理指南/ GaussDB(DWS)集群运维/ 查看GaussDB(DWS)集群告警/ 告警处理/ DWS_2000000016 查询语句触发下盘量超阈值(Data Spilled to Disks for a Query Statement Exceeds the Threshold)
更新时间:2024-10-08 GMT+08:00

DWS_2000000016 查询语句触发下盘量超阈值(Data Spilled to Disks for a Query Statement Exceeds the Threshold)

告警解释

用户业务查询执行过程中,数据库可能会选择将临时结果暂存到磁盘,简称算子下盘

GaussDB(DWS)每60秒通过GS_WLM_SESSION_STATISTICS视图检测CN上正在执行的作业的负载管理记录,并计算所有下盘DN的最大下盘数据量。

如果10分钟(可配置)内存在SQL的下盘量超过5GB(可配置),则上报查询语句触发下盘量超阈值;当集群不存在符合告警条件的SQL语句时,自动消除该告警。修改告警配置详情请参见修改告警规则

如果一直存在能够引发告警的阻塞SQL,那么在24小时(可配置)后将再次发起告警。

告警属性

告警ID

告警归属

告警级别

告警类型

业务类型

是否可自动清除

DWS_2000000016

管理面

>5G 紧急

操作告警

数据仓库服务

告警参数

类别

参数名称

参数含义

定位信息

名称

DWS集群查询语句触发下盘量超阈值。

类型

操作告警。

发生时间

告警发生时间。

附加信息

集群ID

集群resourceId、domain_id等详细信息。

关于附加信息中下盘量,可连接数据库执行SELECT * FROM GS_WLM_SESSION_STATISTICS查看该视图中的max_spill_size字段。

对系统的影响

下盘量大说明系统I/O资源被大量占用,可能导致数据盘空间不足,引发数据库只读/磁盘满,影响系统可用性,最终导致系统停止服务。

可能原因

  • 业务执行过程中正常的数据下盘超过告警阈值。
  • 业务SQL的查询执行计划欠佳,大量数据导入内存触发下盘。
  • 未及时清理过期数据,导致扫描到过多无效数据而触发下盘。

处理步骤

  1. 确认执行计划是否欠佳。

    1. 从告警的附加信息中获取SQL语句,对相关表执行ANALYZE后再次执行SQL,查看下盘量是否降低。
    2. 如果没有明显效果,则执行EXPLAIN PERFORMANCE查看告警SQL语句实际执行信息,详情请参见SQL执行计划详解。根据执行信息,如果估算内存使用(operator memory)和峰值内存(Peak Memory)均较大,比如大于max_process_memory的20%,则需要对该查询进行优化,详情请参见调优流程

  2. 检查查询语句触发下盘量超阈值告警的配置是否合理。

    1. 登录GaussDB(DWS)管理控制台,进入“管理 > 告警管理 > 告警规则管理”界面。
    2. 在“查询语句触发下盘量超阈值”规则所在行“操作”列单击“修改”,进入“修改告警规则”界面。
    3. 如果集群磁盘容量配置较高,可以考虑将上报阈值调大,建议不超过单个数据盘容量的5%。

      需要注意的是,阈值过大时临时下盘可能会导致磁盘使用率告警甚至集群只读,如果存在数据盘使用率接近或超过80%,调整阈值的同时建议清理无用数据,参考节点数据盘使用率超阈值告警。更详细的界面配置说明参考告警规则

  3. 查杀下盘量高的SQL语句。

    1. 返回GaussDB(DWS)管理控制台。
    2. 在“集群 > 专属集群”界面找到告警集群,在所在行操作列单击“监控面板”进入监控界面。
    3. 选择“监控 > 实时查询”,选择“实时查询”,单击,选择“dn上下盘的最大数据量(mb)”,查看下盘量情况。
    4. 和业务侧确认后,选中需要终止的查询ID,单击“终止查询”。
    5. 调整对业务语句进行磁盘空间管控的数据库参数,具体参数说明请参见语句磁盘空间管控,操作步骤请参见修改数据库参数

      例如:sql_use_spacelimit参数默认值为实例所在磁盘空间总容量的10%,如果磁盘空间充足可以适当调大该参数。当出现单DN写盘超过调整的数值时,DWS会主动终止该query的运行,并提示用户单DN写盘量超阈值。

告警清除

集群不存在下盘量较大的SQL语句时,自动消除告警。