云数据库 RDS-RDS for PostgreSQL实例inodes过多导致数据库重启缓慢:场景一

时间:2024-09-19 16:44:30

场景一

  • 场景描述

    使用RDS for PostgreSQL数据库时,业务执行大量复杂SQL,造成临时文件堆积,内存耗尽发生OOM,数据库重启过程非常缓慢,导致业务较长时间不可用。

  • 原因分析

    由于业务执行复杂SQL,如果SQL中涉及排序、Hash join、聚合等操作,超过配置work_mem参数大小时,会生成临时文件。大量执行这样的SQL,在发生OOM时,数据库进程被OS杀掉,此时内核不会对临时文件进行清理,从而导致临时文件的堆积。过多的临时文件会拖慢数据库启动,这是因为在PostgreSQL数据库进程启动时,需要删除所有之前产生的所有临时文件,如果存在大量临时文件堆积,将导致数据库启动缓慢。

  • 解决方案

    建议业务侧优化SQL,或适当调大work_mem参数值(会增加内存占用),减少临时文件生成。

support.huaweicloud.com/trouble-rds/rds_12_0161.html