1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
#最關鍵參數,默認為5,修改為0 表示不要重發 net.ipv4.tcp_synack_retries = 0 #半連接隊列長度 net.ipv4.tcp_max_syn_backlog = 200000 #系統允許的文件句柄的最大數目,因為連接需要占用文件句柄 fs. file -max = 819200 #用來應對突發的大并發connect 請求 net.core.somaxconn = 65536 #最大的TCP 數據接收緩沖(字節) net.core.rmem_max = 1024123000 #最大的TCP 數據發送緩沖(字節) net.core.wmem_max = 16777216 #網絡設備接收數據包的速率比內核處理這些包的速率快時,允許送到隊列的數據包的最大數目 net.core.netdev_max_backlog = 165536 #本機主動連接其他機器時的端口分配范圍 net.ipv4.ip_local_port_range = 10000 65535 # ……省略其它…… |
注意,以下參數面對外網時,不要打開。因為副作用很明顯,具體原因請google,如果已打開請顯式改為0,然后執行sysctl -p關閉。因為經過試驗,大量TIME_WAIT狀態的連接對系統沒太大影響:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
#當出現 半連接 隊列溢出時向對方發送syncookies,調大 半連接 隊列后沒必要 net.ipv4.tcp_syncookies = 0 #TIME_WAIT狀態的連接重用功能 net.ipv4.tcp_tw_reuse = 0 #時間戳選項,與前面net.ipv4.tcp_tw_reuse參數配合 net.ipv4.tcp_timestamps = 0 #TIME_WAIT狀態的連接回收功能 net.ipv4.tcp_tw_recycle = 0 #當出現 半連接 隊列溢出時向對方發送syncookies,調大 半連接 隊列后沒必要 net.ipv4.tcp_syncookies = 0 #TIME_WAIT狀態的連接重用功能 net.ipv4.tcp_tw_reuse = 0 #時間戳選項,與前面net.ipv4.tcp_tw_reuse參數配合 net.ipv4.tcp_timestamps = 0 #TIME_WAIT狀態的連接回收功能 net.ipv4.tcp_tw_recycle = 0 |
為了處理大量連接,還需改大另一個參數:
1
|
# vi /etc/security/limits.conf |
在底下添加一行表示允許每個用戶都最大可打開409600個文件句柄(包括連接):
1
|
* – nofile 409600 |
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:https://segmentfault.com/a/1190000009472135?utm_source=tuicool&utm_medium=referral