iprouteパッケージの「ss」コマンド。timewaitソケットのスラブテーブルをクエリする理由
これがこの質問の最良のフォーラムではない場合はご容赦ください。しかし、プログラミング自体よりもカーネルに関連しているようです。 統計をグラフ化して監視できるように、開いているポートをシステムに照会するスクリプトを書いています。このために、iprouteパッケージの「ss」コマンドを使用しています。実行ss -s|grep estabすると、次のような出力が表示されます。 TCP: 296 (estab 6, closed 238, orphaned 0, synrecv 0, timewait 238/0), ports 0 私の質問は、TIMEWAIT状態の計算されたソケットを示す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 …