天天看點

Linux性能監控工具:socket 統計資訊

作者:雲計算練習生

1 ss指令介紹

ss 是 Socket Statistics 的縮寫。ss 指令可以用來擷取 socket 統計資訊,它顯示的内容和 netstat 類似。但 ss 的優勢在于它能夠顯示更多更詳細的有關 TCP 和連接配接狀态的資訊,而且比 netstat 更快。當伺服器的 socket 連接配接數量變得非常大時,無論是使用 netstat 指令還是直接 cat /proc/net/tcp,執行速度都會很慢。ss 指令利用到了 TCP 協定棧中 tcp_diag。tcp_diag 是一個用于分析統計的子產品,可以獲得 Linux 核心中第一手的資訊,是以 ss 指令的性能會好很多。

Linux性能監控工具:socket 統計資訊

2 ss指令常用選項

-h, --help 幫助

-V, --version 顯示版本号

-t, --tcp 顯示 TCP 協定的 sockets

-u, --udp 顯示 UDP 協定的 sockets

-x, --unix 顯示 unix domain sockets,與 -f 選項相同

-n, --numeric 不解析服務的名稱,如 "22" 端口不會顯示成 "ssh"

-l, --listening 隻顯示處于監聽狀态的端口

-p, --processes 顯示監聽端口的程序(Ubuntu 上需要 sudo)

-a, --all 對 TCP 協定來說,既包含監聽的端口,也包含建立的連接配接

-r, --resolve 把 IP 解釋為域名,把端口号解釋為協定名稱

3 ss指令常見用例

3.1 不添加選項 ss 指令預設輸出所有建立的連接配接(不包含監聽的端口),包括 tcp, udp, and unix socket 三種類型的連接配接:

Linux性能監控工具:socket 統計資訊

3.2 檢視主機監聽的端口

Linux性能監控工具:socket 統計資訊

3.3 通過 -r 選項解析 IP 和端口号

Linux性能監控工具:socket 統計資訊

3.4 使用 -p 選項檢視監聽端口的程式名稱

ss -tlp

Linux性能監控工具:socket 統計資訊

3.5 最後一列就是運作的程式名稱。還可以通過 grep 繼續過濾:

ss -tlp | grep ssh

Linux性能監控工具:socket 統計資訊

3.6 顯示更多的資訊

-o, --options 顯示時間資訊

-m, --memory 顯示 socket 使用的記憶體

-i, --info 顯示更多 TCP 内部的資訊

Linux性能監控工具:socket 統計資訊

3.7 顯示概要資訊ss -s

Linux性能監控工具:socket 統計資訊

4 總結

由于性能出色且功能豐富,ss 指令可以用來替代 netsate 指令成為我們日常檢視 socket 相關資訊的利器。其實抛棄 netstate 指令已經是大勢所趨,有的 Linux 版本預設已經不再内置 netstate 而是内置了 ss 指令。

有不對的地方希望不吝賜教,歡迎在評論區留言,分享你的看法。

繼續閱讀