共享内存最大值太高...64G。SHMMAX,为什么?

共享内存最大值太高...64G。SHMMAX,为什么?

Linux 中的最大共享内存是否太高?这个似乎是 CentOS 5.6 中的默认值

cat /proc/sys/kernel/shmmax
68719476736

那是64G,要换吗?要换成多少?我的服务器只有1.5G

答案1

除非您遇到进程分配过多 SHM 的问题,否则无需更改这一点。

答案2

它可能是无害的,但你可以通过添加以下内容来改变它/etc/sysctl.conf

kernel.shmmax=1610612736

这将永久将其设置为 1.5GB(每次启动后都会加载此设置)。要即时调整它:

sysctl -w kernel.shmmax=1610612736

请注意,尽管 64GB 会对 1.5GB 的系统造成压力(此设置的流行建议似乎在已安装 RAM 的 80-100% 左右徘徊),但我猜对于某些特定工作负载,您可能希望根据内存子系统的总大小来设置此参数,由于交换和虚拟内存,它可能比单独安装的 RAM 高得多。

相关内容