设置Linux中共享内存的内核参数

Linux中共享内存涉及到三个内核参数:SHMMAX/SHMMNI/SHMALL,除了默认值,我们还可以因环境、应用的需要进行临时、或永久的更改。

  1. SHMMAX参数定义共享内存段的最大尺寸(以字节为单位),默认值是32MB。
  2. SHMMNI 参数设置系统范围内共享内存段的最大数量,默认值是 4096。
  3. SHMALL参数控制着系统一次可以使用的共享内存总量(以页为单位),默认值2097152.该参数值至少应该大于等于SHMMAX/PAGE_SIZE。
  • 查看这三个参数的当前值,通过proc文件系统可以看到:
$ cat /proc/sys/kernel/shmmax 
33554432
$ cat /proc/sys/kernel/shmmni
4096
$ cat /proc/sys/kernel/shmall
2097152
  • 临时修改这三个参数的值,通过echo或sysctl命令修改proc文件中的值,重启失效
$ echo 1073741824 > /proc/sys/kernel/shmmax 
$ sysctl -w kernel.shmmax=1073741824 # 1GB

  • 长期修改三个参数的值,修改/etc/sysctl.conf文件的内容实现,重启有效

echo "kernel.shmmax=1073741824" >> /etc/sysctl.conf

你可能感兴趣的:(linux,共享内存,shmmax,SHMMIN,SHMALL)