Linux中共享內(nèi)存涉及到三個(gè)內(nèi)核參數(shù):SHMMAX/SHMMNI/SHMALL,除了默認(rèn)值,我們還可以因環(huán)境、應(yīng)用的需要進(jìn)行臨時(shí)、或永久的更改。
SHMMAX參數(shù)定義共享內(nèi)存段的最大尺寸(以字節(jié)為單位),默認(rèn)值是32MB.
SHMMNI 參數(shù)設(shè)置系統(tǒng)范圍內(nèi)共享內(nèi)存段的最大數(shù)量,默認(rèn)值是 4096.
SHMALL參數(shù)控制著系統(tǒng)一次可以使用的共享內(nèi)存總量(以頁為單位),默認(rèn)值2097152.該參數(shù)值至少應(yīng)該大于等于SHMMAX/PAGE_SIZE.
查看這三個(gè)參數(shù)的當(dāng)前值,通過proc文件系統(tǒng)可以看到:
1
$ cat /proc/sys/kernel/shmmax
2
33554432
3
$ cat /proc/sys/kernel/shmmni
4
4096
5
$ cat /proc/sys/kernel/shmall
6
2097152
臨時(shí)修改這三個(gè)參數(shù)的值,通過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>
長期修改三個(gè)參數(shù)的值,修改/etc/sysctl.conf文件的內(nèi)容實(shí)現(xiàn),重啟有效
1
echo "kernel.shmmax=1073741824" 》 /etc/sysctl.conf
新聞熱點(diǎn)
疑難解答
圖片精選