web-dev-qa-db-ja.com

LinuxでプロセスごとのネットワークI / O使用状況を監視するにはどうすればよいですか?

Iftop/iptrafのようなこのような既知のツールは、インターフェイスごとおよび接続ごとのネットワークI/Oを表示します。プロセスごとのネットワークI/O統計を確認する方法はありますか?

28
Anonymous

nethogs それはあなたが望むことをするように見えます。

編集:ビルドするには、ncurses-devel、libpcap、およびlibpcap-develをインストールする必要がありました。

32
moshen

各プロセスに関連付けられている接続を見つけるには、lsofを使用します。例えば:

lsof | grep TCP

これにより、次のような接続のリストが表示されます。

bash    10887 luke    3u     IPv4 44638801      0t0      TCP littleyerry.example.com:55212->barista.example.com:ldap (ESTABLISHED)
bash    10913 luke    3u     IPv4 44638905      0t0      TCP littleyerry.example.com:55216->barista.example.com:ldap (ESTABLISHED)
ssh     10935 luke    3u     IPv4 44639001      0t0      TCP littleyerry.example.com:55219->barista.example.com:ldap (ESTABLISHED)
ssh     10935 luke    4u     IPv4 44639008      0t0      TCP littleyerry.example.com:59459->launchpad.example.com:ssh (ESTABLISHED)
bash    10938 luke    3u     IPv4 44639107      0t0      TCP littleyerry.example.com:55221->barista.example.com:ldap (ESTABLISHED)

そこから、言及したツール(iftop、iptraf)を使用して、各接続について個別に調べることができます。小さなスクリプトを作成して、探している特定のデータを集約することができます。

4
lukecyca