【发布时间】:2022-01-03 22:32:18
【问题描述】:
我想知道如何优化部署在 Kubernetes 中的 PostgreSQL 数据库的 RAM 使用率。
我对配置 shared_buffers 和 effective_cache_size 值特别感兴趣。
通常,各种来源提出的建议是使用:
-
如果您的系统具有 1GB 或更多 RAM,shared_buffers 的合理起始值是系统内存的 1/4。如果您的 RAM 较少,则必须更仔细地考虑操作系统占用了多少 RAM;那里更典型的是接近 15%。在某些工作负载中,更大的 shared_buffers 设置也很有效,但考虑到 PostgreSQL 也依赖于操作系统缓存的方式,您不太可能会发现使用超过 40% 的 RAM 比使用更小的 RAM 更好。 (PostgreSQL Website)
-
该值应设置为机器总 RAM 的 15% 到 25% (EDB website)
-
不超过可用 RAM 的 50% (EDB PostgreSQL tuning)
由于容器在设计上使用的后台 RAM 要少得多,因此设置 shared_buffers 值有什么好的建议?
现在该值设置为 25%(4GB 总容器限制中的 1GB),我注意到它很快就被填满了。
【问题讨论】:
-
无法回答,因为我们不知道您将如何使用数据库。没有一种万能的解决方案。你已经找到了 25% 的建议开始。其余的,你必须测试和优化你自己的环境。
-
感谢您的回答。您能给我推荐一些关于 Postgres 优化的好的学习资源吗?
标签: postgresql docker containers