/proc/net/tcpから情報を取得するためのより高速なインターフェースはありますか?

/proc/net/tcpから情報を取得するためのより高速なインターフェースはありますか?

Linux TCP ソケットの inode が与えられたら(を通じて得られる)、このソケットから得ることができる情報を /proc/<pid>/fd見つけるより速い方法はありますか?/proc/net/tcp

プロセスを監視し、IOジョブに関するリアルタイム情報を印刷するトラブルシューティングツールを作成しましたが、straceタイプ情報はより高いレベルの抽象化で収集され、あまり原始的ではありませんが、負荷の高いWebサーバーでは時間がかかります。 。ソケット情報(外部アドレス/ポートなど)を照会することは、サイズ/proc/net/tcp(現在見ているサーバーで約2 MB)のため不可能です。

キャッシュを介してこれを管理できますが、これは必然的に待ち時間が発生し、ソケットから情報を見つけるために2MBのASCIIテキストを読み取って解析する必要がある「API」の不条理について疑問に思うでしょう。

ベストアンサー1

これはリンクですlibnetfilter_conntrack。ライブラリから直接C関数呼び出しをサポートする言語でプログラムを再構築する必要があります。しかし、このライブラリには、そのテキストファイルを解析するよりも、必要なデータをすばやく取得するために必要なリンクがあると思います。

これはiptstateプログラムはタスクを実行するために使用されます。

おすすめ記事