您好,登錄后才能下訂單哦!
今天小編給大家分享一下linux下大量TIME WAIT的問題怎么解決的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
問題描述:
在linux系統中高并發的squid服務器,tcp time_wait套接字數量經常達到兩、三萬,服務器很容易被拖死。
解決方法:
通過修改linux內核參數,可以減少linux服務器的ime_wait套接字數量。
vi /etc/sysctl.conf
增加以下幾行:
復制代碼 代碼如下:
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
說明:
net.ipv4.tcp_syncookies = 1 表示開啟syn cookies。當出現syn等待隊列溢出時,啟用cookies來處理,可防范少量syn攻擊,默認為0,表示關閉;
net.ipv4.tcp_tw_reuse = 1 表示開啟重用。允許將time-wait sockets重新用于新的tcp連接,默認為0,表示關閉;
net.ipv4.tcp_tw_recycle = 1 表示開啟tcp連接中time-wait sockets的快速回收,默認為0,表示關閉。
net.ipv4.tcp_fin_timeout = 30 表示如果套接字由本端要求關閉,這個參數決定了它保持在fin-wait-2狀態的時間。
net.ipv4.tcp_keepalive_time = 1200 表示當keepalive起用的時候,tcp發送keepalive消息的頻度。缺省是2小時,改為20分鐘。
net.ipv4.ip_local_port_range = 1024 65000 表示用于向外連接的端口范圍。缺省情況下很小:32768到61000,改為1024到65000。
net.ipv4.tcp_max_syn_backlog = 8192 表示syn隊列的長度,默認為1024,加大隊列長度為8192,可以容納更多等待連接的網絡連接數。
net.ipv4.tcp_max_tw_buckets = 5000 表示系統同時保持time_wait套接字的最大數量,如果超過這個數字,time_wait套接字將立刻被清除并打印警告信息。默認為180000,改為5000。對于apache、nginx等服務器,上幾行的參數可以很好地減少time_wait套接字數量,但是對于squid,效果卻不大。此項參數可以控制time_wait套接字的最大數量,避免squid服務器被大量的time_wait套接字拖死。
執行以下命令使配置生效:
/sbin/sysctl -p
以上就是“linux下大量TIME WAIT的問題怎么解決”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。