運維小記 TIME WAIT過多的處理方法

2021-06-19 06:26:24 字數 1362 閱讀 5080

sysctl(8) 是乙個允許您改變正在執行中的 freebsd 系統的介面。它包含一些 tcp/ip 堆疊和虛擬記憶體系統的高階選項, 這可以讓有經驗的管理員提高引人注目的系統效能。用 sysctl(8) 可以讀取設定超過五百個系統變數。

基於這點,sysctl(8) 提供兩個功能:讀取和修改系統設定。

檢視所有可讀變數:shell> sysctl -a

讀乙個指定的變數,例如 kern.maxproc:shell> sysctl kern.maxproc

要設定乙個指定的變數,直接用 variable=value 這樣的語法:shell>sysctl kern.maxfiles=5000

sysctl 變數的設定通常是字串、數字或者布林型。 (布林型用 1 來表示'yes',用 0 來表示'no')。

如果你想在每次機器啟動時自動設定某些變數, 可將它們加入到檔案 /etc/sysctl.conf 之中。

shell> sysctl -a | grep net.ipv4.tcp  #檢視當前系統引數

net.ipv4.tcp_timestamps = 1

net.ipv4.tcp_fin_timeout = 60

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_tw_recycle = 0

net.ipv4.tcp_tw_reuse = 0

shell> vi /etc/sysctl.conf

shell> /sbin/sysctl -p #讓剛新增的內容生效

引數解讀:

net.ipv4.tcp_fin_timeout = 30  #修改系統預設的 timeout 時間

,單位是秒

net.ipv4.tcp_tw_recycle = 1  #表示開啟tcp連線中time-wait sockets的快速**,預設為0,表示關閉

net.ipv4.tcp_tw_reuse = 1  #表示允許將time-wait sockets重新用於新的tcp連線,預設為0,表示關閉

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

net.ipv4.tcp_timestamps = 1  #tcp_timestamp是rc 1323定義的優化選項。它主要用於tcp連線中rtt(round trip time)的計算。開啟tcp_timestamp有利於系統計算更加準確的rtt,也就有利於整體tcp效能。

net.ipv4.tcp_max_tw_buckets = 524288  #系統同時處理的最大 timewait sockets 數。

TIME WAIT過多的問題

netstat ant awk tcp end last ack 14 syn recv 348 established 70 fin wait1 229 fin wait2 30 closing 33 time wait 18122 命令解釋 closed 無連線是活動的或正在進行 listen ...

TIME WAIT過多的處理方法

之所以起這樣乙個題目是因為很久以前我曾經寫過一篇介紹time wait的文章,不過當時基本屬於淺嘗輒止,並沒深入說明問題的來龍去脈,碰巧這段時間反覆被別人問到相關的問題,讓我覺得有必要全面總結一下,以備不時之需。討論前大家可以拿手頭的伺服器摸摸底,記住 ss 比 netstat 快 shell ss...

TIME WAIT狀態過多的排查

一 現象 伺服器有兩個現象,第一是tcp連線數不多,不超過10個,但是time wait狀態的2000。第二個按照以往的性質,在很少使用者訪問的情況下,伺服器的資源幾乎沒有使用,比如cpu,不超過5 現在沒有什麼使用者的的情況下,cpu損耗堅持在40 左右,夜間也不停歇。裡面執行著好幾個web專案,...