51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Linux内存管理shmall和shmmax SHMMNI 参数

Linux内存管理------大部分人没有掌握的shmall和shmmax参数

内核中的 shmall 和 shmmax 参数

SHMMAX= 配置了最大的内存segment的大小 ------>这个设置的比SGA_MAX_SIZE大比较好。

SHMMIN= 最小的内存segment的大小

SHMMNI= 整个系统的内存segment的总个数

SHMSEG= 每个进程可以使用的内存segment的最大个数

配置信号灯( semphore )的参数:

SEMMSL= 每个semphore set里面的semphore数量 -----> 这个设置大于你的process的个数吧,否则你不得不分多个semphore set,好像有process+n之说,我忘了n是几了。

SEMMNI= 整个系统的semphore set总数

SEMMNS=整个系统的semphore总数

shmall 是全部允许使用的共享内存大小,shmmax 是单个段允许使用的大小。这两个可以设置为内存的 90%。例如 16G 内存,16*1024*1024*1024*90% = 15461882265,shmall 的大小为 15461882265/4k(getconf PAGESIZE可得到) = 3774873。

修改 /etc/sysctl.conf

kernel.shmmax=15461882265
kernel.shmall=3774873
kernel.msgmax=65535
kernel.msgmnb=65535
执行 sudo sysctl -p
可以使用 ipcs -l 看结果。ipcs -u 可以看到实际使用的情况

赞(2)
未经允许不得转载:工具盒子 » Linux内存管理shmall和shmmax SHMMNI 参数