【營運基本功】centos6.5下巧用netstat命令的參數分析TCP串連與關閉過程,圖文詳解

來源:互聯網
上載者:User

標籤:tcp/ip   營運   centos   自動化   


前言


使用centos6.5系統內建的 netstat,grep,watch等命令,來分析網路連接狀態,要求對 TCP 有限狀態機器的概念有較深入的理解。

同時,這也是除了使用強大的專業第三方協議分析器,如 wireshark 以外,最有效辦法。

寫本博文的目的其中之一就是要告訴大家,不使用 wireshark 等第三方工具,自己也能做到一定粒度的網路連接,狀態分析,調試等等。


用到的命令總結如下:

watch -n 1 -d ‘netstat -antupeo | grep --color 8.8.8.8‘
watch -n 1 -d ‘netstat -antupeo | grep --color SYN_SENT‘
watch -n 1 -d ‘netstat -antupeo | grep --color TIME_WAIT‘
watch -n 1 -d ‘netstat -antupeo | grep --color ESTABLISHED‘watch -n 1 -d ‘netstat -antupeo | grep --color FIN_WAIT1‘

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/39/54/wKioL1O41PPxaE5FAA0KapATTC0505.jpg" title="巧用netstat命令的參數分析TCP串連與關閉過程1.jpg" alt="wKioL1O41PPxaE5FAA0KapATTC0505.jpg" />650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/39/54/wKiom1O41dHwHL2oAA7MIcTYGmg080.jpg" title="巧用netstat命令的參數分析TCP串連與關閉過程2.jpg" alt="wKiom1O41dHwHL2oAA7MIcTYGmg080.jpg" />

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/39/54/wKioL1O41diQjgQxAA_NDwzNSMY576.jpg" style="float:none;" title="巧用netstat命令的參數分析TCP串連與關閉過程3.jpg" alt="wKioL1O41diQjgQxAA_NDwzNSMY576.jpg" />

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/39/54/wKioL1O41ffhPJl1ABM4BTS9tjY420.jpg" style="float:none;" title="巧用netstat命令的參數分析TCP串連與關閉過程4.jpg" alt="wKioL1O41ffhPJl1ABM4BTS9tjY420.jpg" />

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/39/54/wKiom1O41jKR81NdABPx6_teK08657.jpg" style="float:none;" title="巧用netstat命令的參數分析TCP串連與關閉過程6.jpg" alt="wKiom1O41jKR81NdABPx6_teK08657.jpg" />

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/39/54/wKioL1O41gqDj1F9AA6voLQiTV4987.jpg" style="float:none;" title="巧用netstat命令的參數分析TCP串連與關閉過程7.jpg" alt="wKioL1O41gqDj1F9AA6voLQiTV4987.jpg" />


補充說明:關於 TIME_WAIT


前面我們提到過,在用戶端啟動一個長達60秒的 TIME_WAIT計時器,並不會有什麼問題;但是如果在一個高並發訪問,高負載的伺服器上,這就會引發明顯的效能問題。

原因在於,在伺服器端,每個處於 TCP TIME_WAIT 狀態的 UNIX 域通訊端(假設伺服器端作業系統是 linux,一種 UNIX 的變體)都要佔用一個 TCP連接埠,這些可用的連接埠數量非常有限。


一般只有從1024開始到65535結束的這6萬多個連接埠。

現在假設第一批屬於6萬個不同源 IP的 TCP 串連到達伺服器,而 網頁伺服器在最短時間返回帶 connection: close 回應標頭的 HTTP 響應並啟動60秒的 TIME_WAIT計時器,這意味著在60秒內,這6萬多個連接埠將不可重用。而假設在這期間又有第二批數萬個不同源 IP 的 TCP 串連到達,很明顯,此時伺服器將無法分配任何可用連接埠資源來處理這些串連,從而不得不等待60秒才能釋放被佔用的連接埠資源。

我們可以認為,在這段時間內,該伺服器的可用性與並發能力顯得很低下。


不要以為這個描述的情境不會出現。實際上,對於一些大型互連網公司維護的入口網站而言在,在某一時刻經常會遇到連續數萬,甚至數十萬峰值的並發訪問流量。而且這裡還沒有考慮到遭受分散式阻斷服務攻擊(DDOS)的情況。


或許是有鑒於此,linux 核心就提供幾個參數,配置項,用以調優 TCP/ IP 協議堆棧的效能,包括:


限制處於 TIME_WAIT 狀態的連接埠總數閥值,一旦超過即刻清零

TIME_WAIT 狀態連接埠重用,快速回收

增加可開啟的通訊端描述符(檔案描述符的一種)上限

用於在一定程度上緩解DDOS攻擊的 TCP SYN cookie 技術


因此,從這些意義上而言, linux 確實比 windows 更適合作為大型網站的底層伺服器作業系統。




本文出自 “4681835” 部落格,請務必保留此出處http://4691835.blog.51cto.com/4681835/1434989

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.