文档首页> 数据仓库服务 GaussDB(DWS)> 管理指南> 监控与告警> 告警管理> 告警处理> DWS_2000000016 查询语句触发下盘量超阈值(Data Spilled to Disks for a Query Statement Exceeds the Threshold)
更新时间:2024-03-28 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

紧急

告警参数

参数名称

参数含义

告警源

产生告警的系统名称,告警的详细分类。

集群名称

产生告警的集群。

定位信息

产生告警的集群ID,集群名称。

附加信息

CloudService表示产生告警的云服务,依次为服务名,资源标识,资源名称,数据库名称,连接后端的用户名称,查询Id;first_alarm_time表示告警的首次出现时间;查询语句则表示引发此告警的查询语句,最后附带由此查询语句引发的下盘量。示例:CloudService=DWS,resourceId:xxxx-xxxx-xxxx-xxxx,resourceIdName:test_dws,db_name:test_db,user_name:test_user,query_id:756942385413326696,first_alarm_time:2022-12-30:12:42:77:查询语句(ID=756942385413326696) select num,value,cnt,rk,cnt/sumcnt as ratio,sum(ratio) over (over by rk) as cumuratio from ......;触发结果集下盘,且下盘量为15GB。

告警时间

告警的产生时间。

状态

告警当前的活动状态。

关于附加信息中下盘量,可连接数据库执行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语句时,自动消除告警。