GNU/Linux >> Linux の 問題 >  >> Linux

Iprouteパッケージの「ss」コマンド。タイムウェイトソケットのスラブテーブルをクエリする理由

これがこの質問に最適なフォーラムではない場合はご容赦ください。ただし、プログラミング自体よりもカーネルに関連しているようです。

統計をグラフ化して監視できるように、開いているポートをシステムに照会するスクリプトを作成しています。このために、iprouteパッケージの「ss」コマンドを使用しています。 ss -s|grep estabを実行した場合 次のような出力が表示されます:

TCP:   296 (estab 6, closed 238, orphaned 0, synrecv 0, timewait 238/0), ports 0

私の質問は、TIME_WAIT状態の計算されたソケットを表示するtimewait変数に関係しています。スラッシュの後に参照されている番号を見つけようとすると、ソースコードを検索するという旋風の冒険になり、最終的に次のスニペットを見つけることになりました。

printf("TCP:   %d (estab %d, closed %d, orphaned %d, synrecv %d, timewait %d/%d), ports %d\n",
       s.tcp_total + slabstat.tcp_syns + s.tcp_tws,
       sn.tcp_estab,
       s.tcp_total - (s.tcp4_hashed+s.tcp6_hashed-s.tcp_tws),
       s.tcp_orphans,
       slabstat.tcp_syns,
       s.tcp_tws, slabstat.tcp_tws,
       slabstat.tcp_ports
       );

「slabstat」が何を意味するのかを検索した結果、最終的には/ proc/slabinfoにあるスラブキャッシュとそのレポートインターフェイスについて学習したことを認めなければなりません。

質問:スラブテーブルはTIME_WAITソケット計算と何の関係がありますか?試したすべてのサーバーでコマンドを実行するたびに、この数値は常にゼロであるため、この数値が報告される理由を理解できていません。

承認された回答:

tcp_tw_bucketsのようです これは最終的にポーリングされるものであり、Linux2.6.12の時点で削除された構造体です

したがって、7年前のカーネルでない限り、最後の数値はおそらく常に0になります。

スラブのクエリに関しては、私が知る限り、他の利用可能な方法よりも途方もなく高速です。


Linux
  1. Linux でのパッケージ管理のための 15 の aptitude コマンドの例

  2. パッケージを照会、インストール、削除、およびアップグレードするための RPM コマンドの例

  3. NET-TOOLS V/s IPROUTE パッケージ コマンドの比較 (ip と ifconfig コマンドの比較)

  1. rpm:コマンドが見つかりません

  2. apt:コマンドが見つかりません

  3. ルーティング ソケットを使用するには、どのパッケージをインストールする必要がありますか?

  1. データの視覚化と分析のためのコマンド ライン ツールはありますか?

  2. ショートサーキットコマンドのシーケンスで失敗した場合、bash がエラーで停止しないのはなぜですか?

  3. id -r コマンドの適切な構文