GaussDB--Ops巡检-CN临时目录大小异常如何操作?

54 阅读2分钟

告警解释

=======

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

对系统的影响

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

可能原因

  • 当work_mem不足时,通过落盘的方式处理ORDER BY,DISTINCT和MERGE JOINS等SQL语句。
  • 当work_mem不足时,通过落盘的方式处理散列连接、散列为基础的聚集、散列为基础的IN子查询等SQL语句。
  • 有SQL语句将数据汇总到CN节点上进行排序或者哈希表操作。

处理步骤

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

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

    临时目录:

    数据目录

    /tmp

    其中

    数据目录

    可以参考查看数据目录

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

    ls | wc -l

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

    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;
    

    以上SQL是按elp(SQL执行时间)降序查询,越靠前执行时间越长。

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

告警清除

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

参考信息

不涉及。

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