ssはすぐに結合テーブルの同じ型のデータを返しますが、/proc/net/tcpを読み取るのに時間がかかるのはなぜですか?

ssはすぐに結合テーブルの同じ型のデータを返しますが、/proc/net/tcpを読み取るのに時間がかかるのはなぜですか?

Linux 2.6.32で非常に負荷の高いシステム(Webサーバーなど)から/ proc / net / tcpを読み取ると(cat)、100Kエントリを読み取るには30秒以上かかります。久しぶりですね。

後ろで何が起こるのか?ロックが発生していますか?

多くの人が「ss」コマンドの速度に言及しました。 'cat /proc/net/tcp' または 'netstat' が実行していない操作のうち、'ss' コマンドが実行する作業が速くなりますか?

答え1

ssソケット階層を使用してAF_NETLINKカーネルと会話します。これは低レベルのプロトコルですが、データを大きな単位ですばやく転送できます。 CentOS 7のクイック表示は、strace転送ウィンドウを1Mbに設定します。

関連情報