回答:
NetHogsを試すことができます。
NetHogsは小さな「ネットトップ」ツールです。ほとんどのツールが行うように、プロトコルまたはサブネットごとにトラフィックを分類する代わりに、プロセスごとに帯域幅をグループ化します。NetHogsは、ロードされる特別なカーネルモジュールに依存しません。突然大量のネットワークトラフィックが発生した場合は、NetHogsを起動して、どのPIDがこれを引き起こしているかをすぐに確認できます。これにより、ワイルドになり、突然帯域幅を占有しているプログラムを簡単に特定できます。
sudo nethogs -p eth2
。デフォルトでeth0でない場合は、イーサネットを指定する必要があります。
試してみてくださいatop
...最大限に活用するには、追加のカーネルパッチ(I / Oアカウンティングパッチ)を有効にする必要があります。
場合はatop
オプションではありませんその後、使用netstat -anp --inet
TCP / UDPポートが使用中のプロセス(あるいは使用していることであるそれらのリストを提供するために(rootとして)lsof
そのために)。そこから単純に開いたソケットを持って、各プロセスを反復し、いずれかを使用して、それに接続するltrace -S
か、strace
読み込みを見て、送信および受信、または使用し、書き込みをtcpdump
ローカルのIPアドレス(複数可)およびTCP / UDPポートを指定してフィルタを用いてリストされた。
atop
確かにこれらの中で最も便利なのは...必要なカーネルサポートがインストールされている場合です。過去に、を使用してI / Oプロファイリングをサポートするという唯一の目的のために、顧客と雇用主が特別なシステム(本番イメージとは異なる)をセットアップしましたatop
。ただし、これらの他の手法を使用すればそこに到達できます。
SystemTapを使用して何かを行うこともできると確信していますが、これを行うための簡単な調理済みのレシピは知りません。SystemTapは非常にプログラミング分析ツールです。
netstat -anp --inet
、およびチェックRecv-Q
とSend-Q
列