/etc/sysctl.conf 中參數調整如下
1.內存頁數kernel.shmall計算方法 (統一一次可以使用的共享內存總量)
physical RAM size / pagesize
(實際物理內存/系統數據頁)
getconf PAGESIZE
#查看系統數據頁大小(以字節為單位)
[root@tertiary ~]# getconf PAGESIZE
4096
cat /proc/meminfo |grep -i MemTotal
#實際物理內存大小(以千字節為單位)
[root@tertiary ~]# cat /proc/meminfo |grep -i MemTotal
MemTotal: 3798412 kB
\(\frac{實際物理內存大小}{系統數據頁大小}=\frac{3798412}{4}=949,603\)
kernel.shmall=949603
2.單個共享內存段的最大值kernel.shmmax計算方法
1/2 of physical RAM
\(\frac{1}{2}*實際物理內存大小=\frac{3798412*1024}{2}=1,944,786,944\)
kernel.shmmax=1944786944
3.控制內核的行為參數kernel.panic_on_oops
0 嘗試繼續運行。
1 延遲幾秒鍾(輸出klogd時間記錄),然后警告,如果警告sysctl也是非0后機器將重新啟動。
kernel.panic_on_oops = 1
4.rp_filter參數用於控制系統是否開啟對數據包源地址的校驗
rp_filter參數用於控制系統是否開啟對數據包源地址的校驗。
net.ipv4.conf.all.rp_filter
net.ipv4.conf.default.rp_filter
0:不開啟源地址校驗。
1:開啟嚴格的反向路徑校驗。對每個進來的數據包,校驗其反向路徑是否是最佳路徑。如果反向路徑不是最佳路徑,則直接丟棄該數據包。
2:開啟松散的反向路徑校驗。對每個進來的數據包,校驗其源地址是否可達,即反向路徑是否能通(通過任意網口),如果反向路徑不同,則直接丟棄該數據包。
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
5.信號量參數kernel.sem設置
kernel.sem = 250 32000 100 128
第一列,表示每個信號集中的最大信號量數目。semmsl
第二列,表示系統范圍內的最大信號量總數目。semmns
第三列,表示每個信號發生時的最大系統操作數目。semopm
第四列,表示系統范圍內的最大信號集總數目。semmni
6.系統范圍內共享內存段的最大數量kernel.shmmni
kernel.shmmni = 4096
7.可以分配的文件句柄的最大數目fs.file-max
fs.file-max = 6815744
512 * 進程數(如:6815744 = 512 * 13312)
8.同時可以擁有的的異步IO請求數目fs.aio-max-nr
fs.aio-max-nr = 1048576
1048576 其實它等於 1024*1024 也就是 1024K 個,限制並發未完成的請求,應設置為避免I / O子系統故障。
9.net.ipv4.ip_local_port_range客戶端的一個 ip 可用的端口數量
一個 ip 最多創建的連接
net.ipv4.ip_local_port_range = 9000 65500
最小:9000,最大:65500
10.net.core.rmem_default接收套接字緩沖區大小的默認值(以字節為單位)
net.core.rmem_default = 262144
#默認值256KB
11.net.core.rmem_max接收套接字緩沖區大小的最大值(以字節為單位)
net.core.rmem_max = 4194304
#最大值4MB
12.net.core.wmem_default發送套接字緩沖區大小的默認值(以字節為單位)。
net.core.wmem_default = 262144
##默認值256KB
13.net.core.wmem_max發送套接字緩沖區大小的最大值(以字節為單位)
net.core.wmem_max = 1048576
#最大值1MB
一般設置按照如上規則設置,如果文件中已經設置的值比計算結果大,以文件中本身的值為准
vi /etc/sysctl.conf
編輯完成后,執行sysctl -p
生效