web-dev-qa-db-ja.com

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

システムモニターと同じように、特定のプロセス(PID)の帯域幅消費をキャプチャするのに役立つツールまたはコマンドはありますか?ただし、次のスクリーンショット enter image description here

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

更新1

ファイルに出力できる Nethogs のようなツールが少なくとも必要です(NethogsはTCP接続のみをキャプチャします)両方を対象とする同様のツールTCPおよびUDPは素晴らしい

更新2

他のツール(wiresharkなど)を組み合わせたスクリプトも役立ちます。

7
AymenDaoudi

そのため、簡単で明確な「ヒットした」ソリューションが見つからなかったので、控えめなもの、修正、リファクタリング、その他のオプションを用意する必要がありました。

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

2
AymenDaoudi

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

「カーネルモジュール「netatop」がインストールされている場合、ネットワーク負荷はプロセスごとに表示されます。」

2

iftopを使用して、特定のポートのトラフィック量を分析し、lsofを使用して、どのプロセスがどのポートを使用しているかを判断しますか?

0
Gasp0de

Nethogsはあなたが望むものかもしれません。

debian/ubuntu/etc

apt-get install nethogs

またはrhel/cent/etc

yum install nethogs

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

nethogs eth0

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

NetHogsは小さな「ネットトップ」ツールです。プロトコルやサブネットごとにトラフィックを分割する代わりに、そのようなほとんどのツールが行うように、帯域幅をプロセスごとにグループ化し、特別なカーネルモジュールのロードに依存しません。したがって、ネットワークトラフィックが突然大量に発生した場合は、NetHogsを起動して、どのPIDがこれを引き起こしているのかをすぐに確認し、それが何らかのスピンプロセスである場合は、強制終了することができます。

[〜#〜] update [〜#〜]:OPがファイルへの出力を要求しました。あなたはnethogsでそれを行うことができます:

nethogs -d 1 eth0 > output.txt

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

UPDATE2OPはTCPであり、UDPが要件であると述べています。次に jnettop を使用してみてください。少し古いですが、TCP=およびUDPです。deb/ ubuntuで利用可能で、RHELの派生物だと思います。例:

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

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

0
number9

私が知っている利用可能な2つのネットワークグラフィックス監視ソリューションがあります。それらからPID固有のデータをプルできるはずです。

0
Michael D.