9

Amazon RDS(PostrgreSQL 版本)有些东西我并不真正了解。有些查询需要很长时间才能显示结果。我已经设置了所有相关的索引(如 EXPLAIN 所示)。所以我认为这不是由于我的架构设计。

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

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

我可能在某个地方错了...知道吗?

4

1 回答 1

12

要为您的查询提供更多内存,您将调整您的work_mem。这样做是有影响的,因为这是每个后端的内存。

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

“可释放内存”是一件好事 - 这意味着内存当前(很可能)由操作系统缓存中的 postgres 使用。

您可以增加shared_buffers以允许 postgres 使用更多自己的内存进行缓存,但它的有效性存在限制,这意味着您通常不想为此使用超过 25% 的可用内存。

于 2016-01-06T16:33:51.443 回答