1. 程式人生 > >Linux核心調優部分引數說明

Linux核心調優部分引數說明

#接收套接字緩衝區大小的預設值(以位元組為單位)。

net.core.rmem_default = 262144

#接收套接字緩衝區大小的最大值(以位元組為單位)。

net.core.rmem_max = 16777216

#傳送套接字緩衝區大小的預設值(以位元組為單位)。

net.core.wmem_default = 262144

#傳送套接字緩衝區大小的最大值(以位元組為單位)。

net.core.wmem_max = 16777216

#用來限制監聽(LISTEN)佇列最大資料包的數量,超過這個數量就會導致連結超時或者觸發重傳機制。

net.core.somaxconn = 262144

#當網絡卡接收資料包的速度大於核心處理的速度時,會有一個佇列儲存這些資料包。這個引數表示該佇列的最大值。

net.core.netdev_max_backlog = 262144

#表示系統中最多有多少TCP套接字不被關聯到任何一個使用者檔案控制代碼上。如果超過這裡設定的數字,連線就會復位並輸出警告資訊。這個限制僅僅是為了防止簡單的DoS攻擊。此值不能太小。

net.ipv4.tcp_max_orphans = 262144

#表示那些尚未收到客戶端確認資訊的連線(SYN訊息)佇列的長度,預設為1024,加大佇列長度為262144,可以容納更多等待連線的網路連線數。

net.ipv4.tcp_max_syn_backlog = 262144

#表示系統同時保持TIME_WAIT套接字的最大數量。如果超過此數,TIME_WAIT套接字會被立刻清除並且列印警告資訊。之所以要設定這個限制,純粹為了抵禦那些簡單的DoS攻擊,不過,過多的TIME_WAIT套接字也會消耗伺服器資源,甚至宕機。

net.ipv4.tcp_max_tw_buckets = 10000

#表示允許系統開啟的埠範圍。

net.ipv4.ip_local_port_range = 1024 65500

#以下兩引數可解決生產場景中大量連線的伺服器中TIME_WAIT過多問題。

#表示開啟TCP連線中TIME_WAIT套接字的快速回收,預設為0,表示關閉。

net.ipv4.tcp_tw_recycle = 1

#表示允許重用TIME_WAIT狀態的套接字用於新的TCP連線,預設為0,表示關閉。

net.ipv4.tcp_tw_reuse = 1

#當出現SYN等待佇列溢位時,啟用cookies來處理,可防範少量SYN攻擊,預設為0,表示關閉。

net.ipv4.tcp_syncookies = 1

#表示系統允許SYN連線的重試次數。為了開啟對端的連線,核心需要傳送一個SYN並附帶一個迴應前面一個SYN的ACK包。也就是所謂三次握手中的第二次握手。這個設定決定了核心放棄連線之前傳送SYN+ACK包的數量。

net.ipv4.tcp_synack_retries = 1

#表示在核心放棄建立連線之前傳送SYN包的數量。

net.ipv4.tcp_syn_retries = 1

#減少處於FIN-WAIT-2連線狀態的時間,使系統可以處理更多的連線。

net.ipv4.tcp_fin_timeout = 30

#這個引數表示當keepalive啟用時,TCP傳送keepalive訊息的頻度。預設是2小時,若將其設定得小一些,可以更快地清理無效的連線。

net.ipv4.tcp_keepalive_time = 600

#探測訊息未獲得響應時,重發該訊息的間隔時間(秒)。系統預設75秒。

net.ipv4.tcp_keepalive_intvl = 30

#在認定連線失效之前,傳送多少個TCP的keepalive探測包。系統預設值是9。這個值乘以tcp_keepalive_intvl之後決定了,一個連線傳送了keepalive探測包之後可以有多少時間沒有迴應。

net.ipv4.tcp_keepalive_probes = 3

#確定TCP棧應該如何反映記憶體使用,每個值的單位都是記憶體頁(通常是4KB)。第一個值是記憶體使用的下限;第二個值是記憶體壓力模式開始對緩衝區使用應用壓力的上限;第三個值是記憶體使用的上限。在這個層次上可以將報文丟棄,從而減少對記憶體的使用。示例中第一個值為786432*4/1024/1024=3G,第二個值為1048576*4/1024/1024=4G,第三個值為1572864*4/1024/1024=6G。

net.ipv4.tcp_mem = 786432 1048576 1572864

#此引數限制併發未完成的非同步請求數目,應該設定避免I/O子系統故障。

fs.aio-max-nr = 1048576

#該引數決定了系統中所允許的檔案控制代碼最大數目,檔案控制代碼設定代表linux系統中可以開啟的檔案的數量。

fs.file-max = 6815744

#第一列,表示每個訊號集中的最大訊號量數目。

#第二列,表示系統範圍內的最大訊號量總數目。

#第三列,表示每個訊號發生時的最大系統運算元目。

#第四列,表示系統範圍內的最大訊號集總數目。

#(第一列)*(第四列)=(第二列)

kernel.sem = 250 32000 100 128

#表示儘量使用記憶體,減少使用磁碟swap交換分割槽,記憶體速度明顯高於磁碟一個數量級。

vm.swappiness = 0