RDS上的PostgreSQL突然吃掉了光盘上的所有可用存储空间

时间:2018-05-21 11:18:08

标签: django postgresql amazon-web-services amazon-rds

其中一个查询导致我的Postgres冻结,它还会导致一些奇怪的行为,例如增加读/写IOPS和db占用设备上的所有空间。这是一些展示相同的图表。

删除查询前

Free Storage

删除查询后

Free Storage

知道为什么会这样吗?

2 个答案:

答案 0 :(得分:1)

以我的经验,这种情况发生在以下情况:

  • 数据库表中有很多死元组。
  • 查询执行正在使用磁盘中的空间(查询执行期间会生成临时文件,并且work_mem较低)。
  • 您有很多孤立文件(不常见)。

如果您想阅读官方文档: https://aws.amazon.com/premiumsupport/knowledge-center/diskfull-error-rds-postgresql/

答案 1 :(得分:0)

可能有很多选择:

  1. 首先,它取决于数据库的大小。你能提供一些额外的信息吗?
  2. 您的查询是什么?
  3. 您的连接拉大小是多少?
  4. 您使用流式复制吗?
  5. 在我看来,这可能是您的表格的索引 尝试检查受查询影响的表的索引。此外,问题可能是一个非常大的数据库,需要处理大量的RAM。

    不要忘记签出查询中包含的联接。形成不良的联接可能会导致不必要的cross-joins