/proc/sys/kernel/shmmax 的默认最大值是多少

Par*_*hak 5 shmmax virtual-memory sysctl proc

我对于 shmmax 中的最大值应该设置多少有一个模糊性。

查看我的系统统计数据后,它显示以下内容:

#cat /proc/sys/kernel/shmmax 
18446744073692774399

#ipcs -l

------ Messages Limits --------
max queues system wide = 3675
max size of message (bytes) = 8192
default max size of queue (bytes) = 16384

------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 18014398509465599
max total shared memory (kbytes) = 18014398442373116
min seg size (bytes) = 1

------ Semaphore Limits --------
max number of arrays = 128
max semaphores per array = 250
max semaphores system wide = 32000
max ops per semop call = 32
semaphore max value = 32767
Run Code Online (Sandbox Code Playgroud)

理想情况下,共享内存的值不应超过实际 RAM 大小(即 21474836480 字节)。那么这件事可能吗?或者这是一个垃圾值。

Ale*_*hev 1

我正在谷歌搜索您的问题,只找到了如何配置shmmaxshmall参数的文档。最好的一个是在这个答案中。因此,对于你的问题,如果你shmmax设置为更高的值,那么你拥有的内存就更多,它是垃圾值,系统不允许使用比你拥有的内存更多的共享内存(不知道交换)。