Har*_*rel 15 postgresql linux hard-drive
我知道比我使用的更快的磁盘会有所帮助,但这需要更长的时间才能放入,我正在尝试使用一些紧急措施来减少磁盘 IO。atop 几乎不断地报告红色的 DSK 使用情况。这适用于 postgres 8.3。
我的 shared_buffers 设置为 24MB,尽管服务器有 16GB 的内存没有被充分利用。我的第一个想法是为数据库提供尽可能多的内存,但我不知道该怎么做(这是一个专用的数据库服务器)。
任何不需要重新启动的解决方案都是可取的,但我会采取我现在能得到的。
谢谢!
小智 13
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 的共享缓冲区之外的内存中缓存大量页面。
等等等等,希望这能让你有一个好的开始。
归档时间: |
|
查看次数: |
28964 次 |
最近记录: |