linux 下大量TIME WAIT 的處理

2021-07-15 18:56:31 字數 1595 閱讀 3759

原文:linux 下大量time_wait 的處理

#linux下高併發的squid伺服器,tcp time_wait套接字數量經常達到兩、三萬,
#伺服器很容易被拖死。通過修改linux核心引數,可以減少伺服器的ime_wait套接字數量。

$> vim /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

說明:  (1)net.ipv4.tcp_syncookies = 1 

#表示開啟syn cookies。當出現syn等待佇列溢位時,啟用cookies來處理,可防範少量syn攻擊,預設為0,表示關閉;

(2)net.ipv4.tcp_tw_reuse = 1 

#表示開啟重用。允許將time-wait sockets重新用於新的tcp連線,預設為0,表示關閉;

(3)net.ipv4.tcp_tw_recycle = 1 

#表示開啟tcp連線中time-wait sockets的快速**,預設為0,表示關閉。

(4)net.ipv4.tcp_fin_timeout = 30 

#表示如果套接字由本端要求關閉,這個引數決定了它保持在fin-wait-2狀態的時間。

(5)net.ipv4.tcp_keepalive_time = 1200

#表示當keepalive起用的時候,tcp傳送keepalive訊息的頻度。預設是2小時,改為20分鐘。

(6)net.ipv4.ip_local_port_range = 1024    65000

#表示用於向外連線的埠範圍。預設情況下很小:32768到61000,改為1024到65000。

(7)net.ipv4.tcp_max_syn_backlog = 8192

#表示syn佇列的長度,預設為1024,加大佇列長度為8192,可以容納更多等待連線的網路連線數。 

(8)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下刪除大量檔案

主要參考了 首先建立50萬個檔案 test for i in seq 1500000 do echo text i.txt done test time rm f zsh sure you want to delete all the files in home hungerr test yn y ...

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下快速刪除大量檔案

假如你要在linux下刪除大量檔案,比如100萬 1000萬,像 var spool clientmqueue 的mail郵件,像 usr local nginx proxy temp的nginx快取等,那麼rm rf 可能就不好使了。rsync提供了一些跟刪除相關的引數 rsync help gr...