標籤:linux tcp 核心 調優
net.core.rmem_default = 262144
接收通訊端緩衝區大小的預設值(以位元組為單位)。
net.core.rmem_max = 16777216
接收通訊端緩衝區大小的最大值(以位元組為單位)。
net.core.wmem_default = 262144
發送通訊端緩衝區大小的預設值(以位元組為單位)。
net.core.wmem_max = 16777216
發送通訊端緩衝區大小的最大值(以位元組為單位)。
net.core.somaxconn = 262144
用來限制監聽(LISTEN)隊列最大資料包的數量,超過這個數量就會導致連結逾時或者觸發重傳機制。
net.core.netdev_max_backlog = 262144
當網卡接收資料包的速度大於核心處理的速度時,會有一個隊列儲存這些資料包。這個參數表示該隊列的最大值。
net.ipv4.tcp_max_orphans = 262144
系統所能處理不屬於任何進程的TCP sockets最大數量。假如超過這個數量﹐那麼不屬於任何進程的串連會被立即reset,並同時顯示警告資訊。之所以要設定這個限制﹐純粹為了抵禦那些簡單的DoS攻擊﹐千萬不要依賴這個或是人為的降低這個限制。
net.ipv4.tcp_max_syn_backlog = 262144
表示那些尚未收到用戶端確認資訊的串連(SYN訊息)隊列的長度,預設為1024,加大隊列長度為262144,可以容納更多等待串連的網路連接數。
net.ipv4.tcp_max_tw_buckets = 10000
系統在同時所處理的最大timewait sockets 數目。如果超過此數的話,time-wait socket 會被立即砍除並且顯示警告資訊。之所以要設定這個限制,純粹為了抵禦那些簡單的 DoS 攻擊,千萬不要人為的降低這個限制,不過,如果網路條件需要比預設值更多,則可以提高它(或許還要增加記憶體)。
net.ipv4.ip_local_port_range = 1024 65500
允許系統開啟的連接埠範圍。
net.ipv4.tcp_tw_recycle = 1
開啟TCP串連中TIME-WAIT sockets的快速回收,預設為0,表示關閉。
net.ipv4.tcp_tw_reuse = 1
表示是否允許重新應用處於TIME-WAIT狀態的socket用於新的TCP串連。
net.ipv4.tcp_syncookies = 1
當出現SYN等待隊列溢出時,啟用cookies來處理,可防範少量SYN攻擊,預設為0,表示關閉。
net.ipv4.tcp_synack_retries = 1
為了開啟對端的串連,核心需要發送一個SYN並附帶一個回應前面一個SYN 的ACK。也就是所謂三向交握中的第二次握手。這個設定決定了核心放棄串連之前發送SYN+ACK 包的數量。
net.ipv4.tcp_syn_retries = 1
在核心放棄建立串連之前發送SYN包的數量。
net.ipv4.tcp_fin_timeout = 30
如果通訊端由本端要求關閉,這個參數決定了它保持在FIN-WAIT-2狀態的時間。對端可以出錯並永遠不關閉串連,甚至意外宕機。
net.ipv4.tcp_keepalive_time = 600
這個參數表示當keepalive啟用時,TCP發送keepalive訊息的頻度。預設是2小時,若將其設定得小一些,可以更快地清理無效的串連。
net.ipv4.tcp_keepalive_intvl = 30
探測訊息未獲得響應時,重發該訊息的間隔時間(秒)。
net.ipv4.tcp_keepalive_probes = 3
在認定串連失效之前,發送多少個TCP的keepalive探測包。預設值是9。這個值乘以tcp_keepalive_intvl之後決定了,一個串連發送了keepalive之後可以有多少時間沒有回應。
net.ipv4.tcp_mem = 786432 1048576 1572864
確定TCP棧應該如何反映記憶體使用量,每個值的單位都是記憶體頁(通常是4KB)。第一個值是記憶體使用量的下限;第二個值是記憶體壓力模式開始對緩衝區使用應用壓力的上限;第三個值是記憶體使用量的上限。在這個層次上可以將報文丟棄,從而減少對記憶體的使用。對於較大的BDP可以增大這些值(注意,其單位是記憶體頁而不是位元組)。
fs.aio-max-nr = 1048576
此參數限制並發未完成的非同步請求數目,應該設定避免I/O子系統故障。
fs.file-max = 6815744
該參數決定了系統中所允許的檔案控制代碼最大數目,檔案控制代碼設定代表linux系統中可以開啟的檔案的數量。
kernel.sem = 250 32000 100 128
250是參數semmsl的值,表示一個訊號量集合中能夠包含的訊號量最大數目。
2000是參數semmns的值,表示系統內可允許的訊號量最大數目。
100是參數semopm的值,表示單個semopm()調用在一個訊號量集合上可以執行的運算元量。
128是參數semmni的值,表示系統訊號量集合總數。
vm.swappiness = 10
當空閑記憶體少於10%時使用磁碟swap交換分區,記憶體速度明顯高於磁碟一個數量級,盡量使用記憶體,提高效率。
本文出自 “鬆鬆” 部落格,請務必保留此出處http://dongsong.blog.51cto.com/916653/1631085
Linux核心調優部分參數說明