作用
1) 用於通信。使用共享內存通信比其他通信方式效率高
2) 保存日誌等信息。共享內存在進程退出後,可以記錄一些臨終遺言信息參數設置
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的個數)
- 修改系統參數
1) 實時生效
sysctl -w kernel.shmall=8388608
sysctl -w kernel.shmmax=34359738368
2) 永久生效
vi /etc/sysctl.conf
kernel.shmall = 8388608
kernel.shmmax = 34359738368
chkconfig -a boot.sysctl
立即生效
sysctl -p
- 調整/dev/shm的大小
1) 查看大小
df -h /dev/shm
2) 修改大小
vi /etc/fstab
tmpfs /dev/shm tmpfs defaults,size=4096M 0 0
3) 重新掛載
umount /dev/shm
mount /dev/shm
4) 查看修改後的大小
df -h /dev/shm