我想知道如何优化部署在 Kubernetes 中的 PostgreSQL 数据库的 RAM 使用率。
特别是我对配置shared_buffers
和effective_cache_size
值感兴趣。
通常,各种来源提出的建议是使用:
如果您的系统具有 1GB 或更多 RAM,shared_buffers 的合理起始值是系统内存的 1/4。如果您的 RAM 较少,则必须更仔细地考虑操作系统占用了多少 RAM;那里更典型的是接近 15%。在某些工作负载中,更大的 shared_buffers 设置也很有效,但考虑到 PostgreSQL 也依赖于操作系统缓存的方式,您不太可能会发现使用超过 40% 的 RAM 比使用更小的 RAM 更好。(PostgreSQL 网站)
该值应设置为机器总 RAM 的 15% 到 25%(EDB 网站)
不超过 50% 的可用 RAM(EDB PostgreSQL 调优)
由于容器通过设计使用更少的背景 RAM,因此设置 shared_buffers 值的好建议是什么?
现在该值设置为 25%(1GB 的 4GB 总容器限制),我注意到它很快就被填满了。