Database 当主机有大量空闲RAM时,最有效的Postgres设置需要调整

Database 当主机有大量空闲RAM时,最有效的Postgres设置需要调整,database,postgresql,rdbms,postgresql-9.3,postgresql-performance,Database,Postgresql,Rdbms,Postgresql 9.3,Postgresql Performance,我的雇主在一个相当“大”的虚拟机上运行博士后。它目前配置有24个内核和128 GB物理RAM 我们的监控解决方案表明,即使在负载最重的时期,Postgres进程也不会消耗超过11GB的RAM。大概所有剩余的空闲RAM都被操作系统用来缓存文件系统 我的问题:在事务性和分析性工作负载混合的情况下,哪种配置设置(如果进行了调整)最有可能提高性能 换言之,考虑到有大量令人尴尬的空闲RAM,我在哪里可能获得最“划算”的设置 编辑以添加: 以下是调优指南中经常提到的某些设置的当前值。注意:我没有设置这些值;

我的雇主在一个相当“大”的虚拟机上运行博士后。它目前配置有24个内核和128 GB物理RAM

我们的监控解决方案表明,即使在负载最重的时期,Postgres进程也不会消耗超过11GB的RAM。大概所有剩余的空闲RAM都被操作系统用来缓存文件系统

我的问题:在事务性和分析性工作负载混合的情况下,哪种配置设置(如果进行了调整)最有可能提高性能

换言之,考虑到有大量令人尴尬的空闲RAM,我在哪里可能获得最“划算”的设置

编辑以添加:

以下是调优指南中经常提到的某些设置的当前值。注意:我没有设置这些值;我正在读取conf文件中的内容:

shared_buffers = 32GB
work_mem = 144MB
effective_cache_size = 120GB
文件中没有设置“sort_mem”和“max_fsm_pages”


Postgres版本是9.3.5。

控制Postgres内存使用的设置是。设置为RAM的25%,最大为8GB

因为11GB接近8GB,所以您的系统似乎已经调整得很好了。您可以使用
effective\u cache\u size
告诉Postgres您有一个服务器,它有大量内存用于操作系统磁盘缓存

开始Postgres性能调整的两个好地方:

  • 打开SQL并解释分析慢速或频繁查询
  • 使用(Postgres的“顶部”)查看是什么让您的服务器忙碌

对于事务负载,我认为我们做得很好。当分析作业未运行时,磁盘I/O和CPU将最小化。事实上,我们可能有“太多”的硬件。分析工具在运行时往往会使磁盘I/O达到最大值,接近CPU的最大值。如果可能的话,这正是我想要加快的。(是的,我知道优化查询本身和/或表结构和/或索引策略可能会产生最大的影响。这方面的工作也正在进行。)