我的雇主在一个体面的“大型”虚拟机上运行Postgres。它目前配置有24个内核和128 GB物理RAM。
我们的监控解决方案表明,即使在负载最重的时段,Postgres进程也不会消耗超过大约11 GB的RAM。据推测,操作系统使用所有剩余的空闲RAM来缓存文件系统。
我的问题:如果调整了哪些配置设置,最有可能提供性能提升,因为工作负载是事务性和分析性的混合?
换句话说,鉴于有大量的免费内存,我可能会在哪些环境中获得最大的“爆炸性”?
编辑添加:
以下是调谐指南中经常提到的某些设置的当前值。注意:我没有设置这些值;我只是在阅读conf文件中的内容:
shared_buffers = 32GB
work_mem = 144MB
effective_cache_size = 120GB
“sort_mem”和“max_fsm_pages”未在文件中的任何位置设置。
Postgres版本是9.3.5。
答案 0 :(得分:0)
控制Postgres内存使用量的设置为shared_buffers
。 recommended设置为RAM的25%,最大为8GB。
由于11GB接近8GB,看起来您的系统调整得很好。您可以使用effective_cache_size
告诉Postgres您的服务器有大量内存用于操作系统磁盘缓存。
启动Postgres性能调整的两个好地方:
explain analyze
慢速或频繁查询pg_activity
(" top" for Postgres)查看让您的服务器忙碌的原因