Centos7 TCP斷線系統檢測時間配置及TCP服務器優化

 

配置客戶端異常斷線檢測時間
代碼中:((SocketSessionConfig)session.getConfig()).setKeepAlive(true);
系統設置如下
vi /etc/sysctl.conf

#jxm---------
net.ipv4.tcp_fin_timeout = 40
#10s
#當探測沒有確認時,重新發送探測的頻度。默認是75秒。 現在是3秒
net.ipv4.tcp_keepalive_intvl = 10

#在認定連接失效之前,發送多少個TCP的keepalive探測包。默認值是9次。現在3次
net.ipv4.tcp_keepalive_probes = 3

#是指TCP發送keepalive消息的頻度,默認爲7200秒,現在是60秒。
net.ipv4.tcp_keepalive_time = 60

net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
#----------end
生效配置:
sysctl -p

 

 

優化socket性能:
https://yq.aliyun.com/ziliao/56727
在Linux下高併發的Squid服務器中,TCP TIME_WAIT套接字數量經常可達兩三萬,服務器很容易就會被拖死。不過,我們可以通過修改Linux內核參數來減少Squid服務器的TIME_WAIT套接字數量,命令如下所示:
#vim /etc/sysctl.conf

然後, 增加以下參數:
 代碼如下    複製代碼
#適用於Squid服務器
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 1024 65000  
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000

如果是用於Apache或Nginx等的Web服務器,或Nginx的反向代理,則只需要更改以下幾項即可:
#適用於Apache或Nginx等web服務器,或Nginx的反向代理
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 1024 65000

如果是郵件服務器,則建議內核方案如下:

#適用於郵件服務器
net.ipv4.tcp_fin_timeout = 30 
net.ipv4.tcp_keepalive_time = 300 
net.ipv4.tcp_tw_reuse = 1 
net.ipv4.tcp_tw_recycle = 1 
net.ipv4.ip_local_port_range = 5000 65000
kernel.shmmax = 134217728

執行以下命令使內核配置立即生效:
#/sbin/sysctl -p
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章