我知道比我正在使用的更快的磁盘会有所帮助,但这需要更长的时间才能投入使用,我正在尝试使用一些紧急措施来减少磁盘IO. atop几乎不断报告红色的DSK使用情况.这是postgres 8.3.
我的shared_buffers设置是24MB,虽然服务器有16GB的RAM没有被充分利用.我的第一个想法是给数据库尽可能多的ram,但我不知道该怎么做(这是一个专用的数据库服务器).
任何不需要重启的解决方案都是可取的,但我会采取我现在可以得到的结果.
谢谢!
解决方法
24MB shared_buffers设置是保守的默认设置,我认为对于具有16GB RAM可用的专用数据库,它需要相当高.但是,是的,您必须重新启动服务器才能调整它的大小.
http://wiki.postgresql.org/wiki/Performance_Optimization是开始执行性能配置指南的好地方.将shared_buffers设置为4GB或6GB似乎更合理.
请注意,在linux上,您需要调整kernel.shmmax sysctl设置(在/etc/sysctl.conf中或仅通过编写/ proc / sys / kernel / shmmax)来分配这个共享内存的块.如果不这样做,您将收到指定请求量的错误,您必须将kernel.shmmax设置为高于此值.
由于你有很多内存,你可能还会考虑将默认的work_mem设置得更高,这会使得排序和散列(组/顺序/不同等)之类的东西倾向于在内存中工作而不是使用临时文件.您无需重新启动服务器即可执行此操作,只需更新配置文件,重新加载服务,新会话将获得新设置.会话的默认工作内存为1MB,您可以将一次可以使用的最大值计算为work_mem * max_client_connections,并估计将产生的影响.
您还应该增加effective_cache_size以向规划器指示内核FS层可能在postgresql的共享缓冲区之外缓存内存中的大量页面.
希望这会让你有一个良好的开端.