Redhat 6.3 中的 shmmax 值较高

Redhat 6.3 中的 shmmax 值较高

我们使用带有 30G RAM 的 Redhat 6.3 来托管我们的 Postgres 服务器。

(默认)shmmax 值为 68,719,476,736

在一些论坛上,我读到,shmmax 值大于 RAM 会导致大量分页,但在 Redhat 论坛上,它警告不要更改已配置为大于环境最低要求的值的内核参数。

在 ServerFault 中我读到这可能没有影响。

那么,在 DB 服务器中 shmmax 值 > RAM 是否会造成任何影响,或者内核是否理解这一点并进行适当的处​​理?

谢谢

答案1

SHMMAX拥有物理 RAM没有实际意义,除非你实际上开始使用RAM。请注意,如果您开始分配比系统可用 RAM 更多的共享内存,您的系统将进行交换(就像您过度分配 RAM 的其他任何时候一样),这肯定会影响性能。

请注意,在最新版本的 Postgres (9.3.0 及更高版本) Postgres 使用 POSIX 共享内存 & mmap(),这减少了对 System V 共享内存的需求。
如果您升级到 Postgres 9.3,除非您有一个不寻常的环境(例如在一台机器上运行几十个 Postgres 集群),否则可能完全可以避免调整SHMMAX/参数。SHMALL

相关内容