Linux中共享内存涉及到三个内核参数:SHMMAX/SHMMNI/SHMALL,除了默认值,我们还可以因环境、应用的需要进行临时、或永久的更改。
SHMMAX参数定义共享内存段的最大尺寸(以字节为单位),默认值是32MB.
SHMMNI 参数设置系统范围内共享内存段的最大数量,默认值是 4096.
SHMALL参数控制着系统一次可以使用的共享内存总量(以页为单位),默认值2097152.该参数值至少应该大于等于SHMMAX/PAGE_SIZE.
查看这三个参数的当前值,通过proc文件系统可以看到:
1
$ cat /proc/sys/kernel/shmmax
2
33554432
3
$ cat /proc/sys/kernel/shmmni
4
4096
5
$ cat /proc/sys/kernel/shmall
6
2097152
临时修改这三个参数的值,通过echo或sysctl命令修改proc文件中的值,重启失效
1
$ echo 1073741824 > /proc/sys/kernel/shmmax
2
$ sysctl -w kernel.shmmax=<span></span><span></span>1073741824<span></span> # 1GB<span></span>
长期修改三个参数的值,修改/etc/sysctl.conf文件的内容实现,重启有效
1
echo "kernel.shmmax=1073741824" 》 /etc/sysctl.conf
新闻热点
疑难解答