Amazon RDS(PostgreSQL):优化内存使用

时间:2016-01-06 10:57:17

标签: performance postgresql amazon-rds database-tuning

我对Amazon RDS(PostrgreSQL版本)并不了解。有些查询需要花费大量时间来显示结果。我已设置所有相关索引(如EXPLAIN所示)。所以我认为这不是因为我的架构设计。

我不使用大型机器(m3.xlarge),因为较大的机器太贵了。我的数据库大小约为300GB。

似乎Postgres没有使用所有可用内存(仅约5GB,控制台的“可用内存”报告显示总有~10GB可用内存......)。我尝试按照tune-your-postgres-rds-instance的建议调整我的“参数组”,特别是将EFFECTIVE_CACHE_SIZE设置为70%。但它没有改变任何东西。

我可能在某处错了......任何想法?

1 个答案:

答案 0 :(得分:8)

要为查询提供更多可用内存,您可以调整work_mem。 这样做会产生影响,因为每个后端都有这种记忆。

effective_cache_size实际上根本不处理内存。它是一个优化器参数。

"可释放的记忆"是一件好事 - 这意味着当前在操作系统缓存中使用postgres(最有可能)使用内存。

你可以增加你的shared_buffers以允许postgres使用更多自己的记忆来进行缓存,但是它的有效性是有限的,这意味着你通常不想要使用超过25%的可用内存。