亚马逊RDS(PostgreSQL):优化内存使用

9

我对Amazon RDS(PostrgreSQL版本)有些不太理解。有些查询需要很长时间才能显示结果。我已经设置了所有相关索引(如EXPLAIN所示)。所以我认为这不是由于我的模式设计问题。

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

似乎Postgres没有使用所有可用内存(仅约5GB,“Freeable memory”报告显示总是有约10GB的可释放空间……)。我尝试根据tune-your-postgres-rds-instance的建议调整我的“参数组”,特别是将EFFECTIVE_CACHE_SIZE设置为70%。但是这并没有改变什么。

我可能在哪里错了……有什么想法吗?

1个回答

12
为了给你的查询提供更多的内存,你可以调整你的 work_mem。但这样做会有一些影响,因为它会使用每个后端的内存。
实际上,effective_cache_size 并不涉及内存。它是一个优化器参数。
“可释放内存”是一个好东西——这意味着该内存当前被 Postgres 在操作系统缓存中使用。
你可以增加你的shared_buffers,以允许 Postgres 使用更多自己的内存进行缓存,但其有效性是有限的,所以通常不建议使用超过可用内存的 25%。

有没有类似的答案适用于MS SQL服务器?我想优化内存使用。目前内存使用有点太高了。 - Bagusflyer
那是每个后端的内存。 ... 这似乎不是真的,根据我刚看到的其他答案:每个后端可能使用多个! ...请参见https://dba.stackexchange.com/a/33616/166815了解详细信息。 - Anton Kraievyi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接