1.檢視各狀態的埠數量;指令碼如下:
while true;
do date;
netstat -n | awk '/^tcp/ end 'i;
sleep 2;
done;
or
time=5;
while true;
donetstat -ant |grep 1433| awk '/established|time_wait|listen|close_wait/ end }';
echo -------------------;
sleep $time;
done
2.優化,修改/etc/sysctl.conf檔案如下:
#對於乙個新建連線,核心要傳送多少個 syn 連線請求才決定放棄,不應該大於255,預設值是5,對應於180秒左右時間
net.ipv4.tcp_syn_retries=2
#net.ipv4.tcp_synack_retries=2
#表示當keepalive起用的時候,tcp傳送keepalive訊息的頻度。預設是2小時,改為300秒
net.ipv4.tcp_keepalive_time=1200
net.ipv4.tcp_orphan_retries=3
#表示如果套接字由本端要求關閉,這個引數決定了它保持在fin-wait-2狀態的時間
net.ipv4.tcp_fin_timeout=30
#表示syn佇列的長度,預設為1024,加大佇列長度為8192,可以容納更多等待連線的網路連線數。
net.ipv4.tcp_max_syn_backlog = 4096
#表示開啟syn cookies。當出現syn等待佇列溢位時,啟用cookies來處理,可防範少量syn攻擊,預設為0,表示關閉
net.ipv4.tcp_syncookies = 1
#表示開啟重用。允許將time-wait sockets重新用於新的tcp連線,預設為0,表示關閉
net.ipv4.tcp_tw_reuse = 1
#表示開啟tcp連線中time-wait sockets的快速**,預設為0,表示關閉
net.ipv4.tcp_tw_recycle = 1
#可用埠範圍
net.ipv4.ip_local_port_range = 10000 61000
##減少超時前的探測次數
net.ipv4.tcp_keepalive_probes=5
##優化網路裝置接收佇列
net.core.netdev_max_backlog=3000
修改完成後,執行 /sbin/sysctl -p命令後方才生效;
3.關於配置檔案中每個引數的意義見文件:
linux下解決大量的TIME WAIT
root web02 vi etc sysctl.conf 新增如下內容 net.ipv4.tcp tw reuse 1 net.ipv4.tcp tw recycle 1 net.ipv4.tcp syncookies 1 使核心引數生效 root web02 sysctl p readme ne...
linux下解決大量的TIME WAIT
root web02 vi etc sysctl.conf 新增如下內容 net.ipv4.tcp tw reuse 1 net.ipv4.tcp tw recycle 1 net.ipv4.tcp syncookies 1 使核心引數生效 root web02 sysctl p readme ne...
linux 大量的TIME WAIT解決辦法
發現存在大量time wait狀態的連線 tcp 0 0 127.0.0.1 3306 127.0.0.1 41378 time wait tcp 0 0 127.0.0.1 3306 127.0.0.1 41379 time wait tcp 0 0 127.0.0.1 3306 127.0.0....