特定のプロセス(PID)の帯域幅消費を監視するLinuxツール

特定のプロセス(PID)の帯域幅消費を監視するLinuxツール

システムモニタのように特定のプロセス(PID)の帯域幅消費をキャプチャするのに役立ちますが、次のスクリーンショットに示すように、単一の特定のプロセスに使用できるツールやコマンドはありますか?ここに画像の説明を入力してください。

少なくともそのような履歴をファイルにエクスポートするコマンドラインツールに満足するでしょう。 (私はUbuntu 16.04を使用しています)

アップデート1

少なくともこんな道具があったらいいなインターネット豚ファイルとして出力可能(NethogsはTCP接続のみをキャプチャ)TCPとUDPの同様のツールが便利です。

アップデート2

スクリプトとWiresharkなどの他のツールの組み合わせも役に立ちます。

答え1

上記のツールを見ましたか?マニュアルページによると:

「カーネルモジュール 'netatop'をインストールすると、プロセス固有のネットワーク負荷が表示されます。」

答え2

そのため、簡単で明確で「即時起動」ソリューションが見つからなかったため、修正、リファクタリング、およびより多くのオプションを含む適切なソリューションを作成する必要がありました。

->https://github.com/AymenDaoudi/NeTraf

答え3

Nethogsがあなたが探しているものかもしれません。

Debian/Ubuntu/など。

apt-get install nethogs

またはrhel/cent/etc。

yum install nethogs

次のネットワークインターフェイスで実行します。

nethogs eth0

ただし、出力は各プロセスで送受信される帯域幅です。複数のインターフェイスを監視することもできます。

説明NetHogsは小さな「netHogs」ツールです。ほとんどのツールと同様に、プロトコルやサブネットごとにトラフィックを分割するのではなく、プロセスごとに帯域幅をグループ化してロードする特別なカーネルモジュールに依存しません。したがって、突然ネットワークトラフィックが増えた場合は、NetHogsを起動し、どのPIDがこの問題を引き起こしているのかをすぐに確認し、一種の回転プロセスの場合は終了できます。

修正する:OPがファイルに出力を要求しました。 nethogsを使用してこれを行うことができます。

nethogs -d 1 eth0 > output.txt

-d は書き込み間の時間間隔を指定するので、上記のコマンドを実行して目的の結果を得ることができます。

アップデート2OPはTCPとUDPが必要だと述べた。それから試してみてくださいインターネットトップ。少し古いですが、TCPとUDPがあります。私の考えでは、RHEL派生バージョンdeb / ubuntuで使用できます。例:

jnettop --display text -t 5 --format CSV

ファイルにパイプすることが可能でなければなりません。

答え4

nethogsツールは、各プロセスのネットワークトラフィックを監視するのに役立ちます。あなたはそれを使用することができますnethogs -t。ここで -t は巡回を意味します。

送受信した総数を表示するには、次のコマンドを使用します。 nethogs -t -v3

追加のプロセスフィルタリングのために出力をファイルにリダイレクトできます。

関連情報