- 作用
- 用于通信。使用共享内存通信比其他通信方式效率高
- 保存日志等信息。共享内存在进程退出后,可以记录一些临终遗言信息
- 参数设置
kernel.shmmax 单个共享内存段的最大值,一般设置为物理内存的一半(内存小于4G,可设置为与物理内存一样大;大于4G,可设置为物理内存的90%),单位Byte
kernel.shmall 共享内存页数
kernel.shmmni 共享内存段的最大数量,默认4096 Bytes
64G 内存
kernel.shmmax = 34359738368 (34359738368 / 1024 / 1024 = 32768MB = 32GB)
kernel.shmall = 8388608 (34359738368 / 4096 = 8388608)
kernel.shmmni = 4096
Oracle:
shmmax>=SGA(32位系统 1.7G 以上SGA 需要注意) 。64位系统,shmmax 设置为大于SGA_MAX_SIZE即可
shmmax(bytes) = shmmni(page size, default 4k) * shmall (page的个数)
- 修改系统参数
-
实时生效
sysctl -w kernel.shmall=8388608
sysctl -w kernel.shmmax=34359738368 -
永久生效
vi /etc/sysctl.conf
kernel.shmall = 8388608
kernel.shmmax = 34359738368
chkconfig -a boot.sysctl
立即生效
sysctl -p
- 调整/dev/shm的大小
- 查看大小
df -h /dev/shm - 修改大小
vi /etc/fstab
tmpfs /dev/shm tmpfs defaults,size=4096M 0 0 - 重新挂载
umount /dev/shm
mount /dev/shm - 查看修改后的大小
df -h /dev/shm