ss命令

     今天發現一個很好用的命令:ss

   ss是socket statistics 的縮寫,可以用來獲取socket的統計信息,顯示內容和netstat類似, 但ss的優勢在於它能夠顯示更多更詳細的有關TCP和連接狀態的信息,而且比netstat更快速更高效。

   ss快的祕訣在於,它利用到了TCP協議棧中tcp_diag。tcp_diag是一個用於分析統計的模塊,可以獲得Linux 內核中第一手的信息,這就確保了ss的快捷高效。當然,如果你的系統中沒有tcp_diag,ss也可以正常運行,只是效率會變得稍慢(但仍然比 netstat要快)。

ss命令部分參數項:

ss -l 顯示本地打開的所有端口
ss -pl 顯示每個進程具體打開的socket
ss -t -a 顯示所有tcp socket
ss -u -a 顯示所有的UDP Socekt
ss -o state established '( dport = :smtp or sport = :smtp )'  
 顯示所有已建立的SMTP連接
ss -o state established '( dport = :http or sport = :http )'  
顯示所有已建立的HTTP連接
ss -x src /tmp/.X11-unix/*  
找出所有連接X服務器的進程
ss -s 列出當前socket詳細信息

其他參數項目man下。

查看socket信息:

特別要注意timewait這個項,如果值比較大的話,說明有很多處於TIME_WAIT狀態的連接,系統負載會變大,這時候要系統的連接情況調優。

首先可以對系統內核參數優化下:

net.ipv4.tcp_tw_reuse

當服務器需要在大量TCP連接之間切換時,會產生大量處於TIME_WAIT狀態的連接。TIME_WAIT意味着連接本身是關閉的,但資源還沒有釋放。將net_ipv4_tcp_tw_reuse設置爲1是讓內核在安全時儘量回收連接,這比重新建立新連接要便宜得多。

net.ipv4.tcp_fin_timeout

這是處於TIME_WAIT狀態的連接在回收前必須等待的最小時間。改小它可以加快回收。

然後檢查web服務器的連接參數設置情況,具體就不多說咯。

查看所有tcp socket:

 

又快信息又全,是不是很方便啊!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章