GaussDB--Ops巡检-DN临时目录大小异常解决方法

99 阅读3分钟

告警解释

=======

此告警对应指标“DN临时目录大小”超出配置阈值,此指标反映DN组件临时目录大小。

对系统的影响

  • 正常情况下,此指标上涨之后在语句执行完成之后会回落。
  • 如果此指标持续上涨,异常占用磁盘,可能触发磁盘只读、磁盘满等情况。

可能原因

  • 当work_mem不足时,通过落盘的方式处理ORDER BY,DISTINCT和MERGE JOINS等SQL语句。
  • 当work_mem不足时,通过落盘的方式处理散列连接、散列为基础的聚集、散列为基础的IN子查询等SQL语句。
  • 如果此指标值较大,说明某些语句将数据汇总到DN上进行排序或者哈希表操作。

处理步骤

  1. 收到告警后,通过查看监控指标查看指标“DN临时目录大小”,确认指标情况以及触发告警的节点和组件。

  2. 通过查看监控指标查看“集群数据磁盘已使用百分比(sum(DN)/副本数)”指标。

    如果指标持续上涨,且接近只读阈值,可以执行如下命令紧急处理,操作后执行3

    gs_guc reload -Z cmserver -N all -I all -c "datastorage_threshold_value_check = 90"

    datastorage_threshold_value_check表示只读阈值,可在“DBS运维管理平台 > 实例管理 > 实例详情 > 参数配置”中查看或修改。

  3. 登录实例节点,登录1中触发告警的节点,进入告警组件的临时目录,确认当前临时目录占用磁盘的大小。

    临时目录:

    数据目录

    /tmp

    其中

    数据目录

    可以参考查看数据目录

  4. 执行如下命令确认当前临时目录下是否有临时文件。

    ls | wc -l

    • 如果多次执行,结果持续为0,说明临时文件已回收,风险解除,持续观察即可。
    • 如果多次执行,此结果不为0,说明存在临时文件。
      • 如果数量在减小,说明临时文件在回收,持续观察。
      • 如果数量在增加,说明临时文件仍然在产生,占用磁盘会持续增加,执行5
  5. 登录实例数据库,执行如下命令确认是否有需要落盘的语句在执行。

    select pid, sessionid, query, state, usename, now()-query_start as elp from pg_stat_activity where state = 'active' and query ilike '%create%index%' or query ilike '%order by%' or query ilike '%distinct%' or query ilike '%merge joins%' or query ilike '%join%' order by elp desc;
    

    elp对应列的值为SQL执行时间,排在前边的语句说明执行时间长。

    • 如果查出来的语句执行时间较长,大概率会触发落盘。
    • 如果语句为创建索引相关的,带索引创建完成之后,临时文件会自动回收。
    • 如果为非创建索引的业务语句,需要优化语句。
    • 如果为非客户业务库的SQL语句,联系技术支持
    • 如果临时文件数量持续上涨,如上语句无返回结果,联系技术支持

告警清除

此告警修复后,系统会自动清除此告警,无需手工清除。

参考信息

不涉及。

更多详情请参考GaussDB 文档中心:doc.hcs.huawei.com/db/zh-cn/ga…