
在 Linux 2.6.32 上,如果您在負載非常大的系統(例如 Web 伺服器)上讀取(例如 cat)/proc/net/tcp,您會發現讀取 100K 項目需要超過 30 秒。那是很長一段時間了。
幕後發生了什麼事?是否有鎖定發生?
許多人提到“ss”命令的速度。 'ss' 命令做了什麼而 'cat /proc/net/tcp' 或 'netstat' 沒有做這使得它更快?
答案1
ss
使用AF_NETLINK
套接字層與核心對話。這是一個較低級別的協議,但允許快速且大塊地傳輸資料。 CentOS 7 上的快速strace
顯示它將傳輸視窗設定為 1Mb。