天天看點

運維小技巧:使用ss指令代替 netstat,和netstat說再見

ss是socket statistics的縮寫。

顧名思義,ss指令可以用來擷取socket統計資訊,它可以顯示和netstat類似的内容。但ss的優勢在于它能夠顯示更多更詳細的有關tcp和連接配接狀态的資訊,而且比netstat更快速更高效。

【和netstat說再見的原因】

當伺服器的socket連接配接數量變得非常大時,無論是使用netstat指令還是直接cat /proc/net/tcp,執行速度都會很慢。可能你不會有切身的感受,但請相信我,當伺服器維持的連接配接達到上萬個的時候,使用netstat等于浪費 生命,而用ss才是節省時間。

天下武功唯快不破。ss快的秘訣在于,它利用到了tcp協定棧中tcp_diag。tcp_diag是一個用于分析統計的子產品,可以獲得linux 核心中第一手的資訊,這就確定了ss的快捷高效。當然,如果你的系統中沒有tcp_diag,ss也可以正常運作,隻是效率會變得稍慢。(但仍然比 netstat要快。)

【用資料說話】

為了讓你更堅決的和netstat說再見,列舉一些測試資料,以便證明ss的确名不虛傳。

當伺服器維持3萬個socket連接配接,admin需要計算具體的連接配接數量時,不同情況的耗時如下:

【好馬配上好鞍】

幾乎所有的linux系統都會預設包含netstat指令,但并非所有系統都會預設包含ss指令。netstat指令是net-tools工具集中的一員:

ss指令是iproute工具集中的一員:

果你無法使用ss指令,那麼可能是缺少了iproute,需要安裝一下:

【前浪net-tools和後浪iproute】

net-tools是一套标準的unix網絡工具,用于配置網絡接口、設定路由表資訊、管理arp表、顯示和統計各類網絡資訊等等,但是遺憾的是,這個工具自2001年起便不再更新和維護了。

從某種意義上說,iproute工具集幾乎可以替代掉net-tools工具集,具體的替代方案是這樣的:

用途

net-tool(被淘汰)

iproute2

位址和鍊路配置

ifconfig

ip addr, ip link

路由表

route

ip route

鄰居

arp

ip neigh

vlan

vconfig

ip link

隧道

iptunnel

ip tunnel

多點傳播

ipmaddr

ip maddr

統計

netstat

ss

【版本和幫助】

想獲得ss指令的幫助資訊和版本資訊,都非常簡單,你應該可以猜到的:

【ss選項統計】

ss的選項既不多也不複雜,除去非功能性選項(-h/-v)外,ss共有22個選項。

每一個選項都是既支援短選項(如-s),也支援長選項(如–summary)。

我們不會在這裡一一介紹,因為這樣既枯燥又乏味,而且不出三分鐘,你就會昏昏欲睡了。是以,我們會從實際需求和實際問題出發,這樣效果會好些。

【場景一:我想檢視目前伺服器的網絡連接配接統計】

在伺服器産生大量sockets連接配接時,我們會使用這個指令在做宏觀統計。

【場景二:我想檢視所有打開的網絡端口】

果使用-pl參數的話,則會列出具體的程式名稱。你會在輸出中看到類似于這樣的内容:

中可以知道,某個socket連接配接是屬于nginx程式的,nginx程式的pid是15786。

【場景三:我想檢視這台伺服器上所有的socket連接配接】

很簡單,直接使用-a選項即可列出所有網絡連接配接。

如果隻想檢視tcp sockets,那麼使用-ta選項;

如果隻想檢視udp sockets,那麼使用-ua選項;

如果隻想檢視raw sockets,那麼使用-wa選項;

如果隻想檢視unix sockets,那麼使用-xa選項。

【參考文獻】

1 http://en.wikipedia.org/wiki/iproute2

2 http://en.wikipedia.org/wiki/netstat

3 http://www.cyberciti.biz/files/ss.html

4 http://it.toolbox.com/blogs/locutus/what-is-this-ss-program-thingy-14083

5 http://www.cyberciti.biz/tips/linux-investigate-sockets-network-connections.html

6 http://www.policyrouting.org/iproute2.doc.html

運維小技巧:使用ss指令代替 netstat,和netstat說再見

來源;https://www.91ri.org/12470.html

繼續閱讀