淺談linux性能調優之十五:常見網絡參數整理
淺談linux性能調優之十四:調節socket緩沖區
http://www.2cto.com/os/201307/230154.html
1.tcp連接保持管理:
net.ipv4.tcp_keepalive_time = 7200
如果在該參數指定時間內某條連接處於空閒狀態,則內核向遠程主機發起探測
net.ipv4.tcp_keepalive_intvl = 75
內核向遠程主機發送的保活探測的時間間隔
net.ipv4.tcp_keepalive_probes = 9
內核發送保活探測的最大次數,如果探測次數大於這個數,則斷定遠程主機不可達,則關閉該連接並釋放本地資源
一個連接7200s空閒後,內核會每隔75秒去重試,若連續9次則放棄。這樣就導致一個連接經過2h11min的時間才能被丟棄,降低該值能夠盡量減小
失效連接所占用的資源,而被新的連接所使用。
2.tcp連接管理:
net.core.netdev_max_backlog=3000
該文件表示在每個網絡接口接收數據包的速率比內核處理這些包的速率快時,允許送到隊列的數據包的最大數目。
net.ipv4.tcp_max_syn_backlog = 1024
控制每個端口的tcp syn的隊列長度,來自客戶端的連接請求需要排隊,直至服務器接受,如果連接請求數大於該值,則連接請求會被丟棄,客戶端無法
連接服務器,一般服務器要提高此值
net.ipv4.tcp_synack_retries = 5
控制內核向某個socket的ack,syn段重新發送響應的次數,降低此值可以盡早檢測到來自遠程主機的連接失敗嘗試
net.ipv4.tcp_retries2 = 15
控制內核向已建立連接的遠程主機重新發送數據的次數,降低此值,可以盡早的檢測連接失效
3.net.ipv4.tcp_syncookies = 1
SYN Cookie是對TCP服務器端的三次握手協議作一些修改,專門用來防范SYN Flood攻擊的一種手段。它的原理是,在TCP服務器收到TCP SYN包並返回TCP SYN+ACK包時,不分配一個專門的數據區,而是根據這個SYN包計算出一個cookie值。在收到TCP ACK包時,TCP服務器在根據那個cookie值檢查這個TCP ACK包的合法性。如果合法,再分配專門的數據區進行處理未來的TCP連接。
4.net.ipv4.tcp_tw_reuse = 1
表示開啟重用。允許將TIME-WAIT sockets重新用於新的TCP連接,默認為0
net.ipv4.tcp_tw_recycle = 1
表示開啟TCP連接中TIME-WAIT sockets的快速回收,默認為0
5.net.ipv4.tcp_fin_timeout = 60
縮短默認的timeout的時間
6. /proc/sys/net/ipv4/conf/*/accept_redirects
如果主機所在的網段中有兩個路由器,你將其中一個設置成了缺省網關,但是該網關在收到你的ip包時發現該ip包必須經過另外一個路由器,這時這個路由器就會給你
發一個所謂的“重定向”icmp包,告訴將ip包轉發到另外一個路由器。參數值為布爾值,1表示接收這類重定向icmp 信息,0表示忽略。在充當路由器的linux主機上缺
省值為0,在一般的linux主機上缺省值為1。建議將其改為0以消除安全性隱患。