システムモニターと同じように、特定のプロセス(PID)の帯域幅消費をキャプチャするのに役立つツールまたはコマンドはありますか?ただし、次のスクリーンショット
少なくともそのような履歴をファイルにエクスポートするコマンドラインツールに満足しています。 (私はUbuntu 16.04を使用しています)
更新1
ファイルに出力できる Nethogs のようなツールが少なくとも必要です(NethogsはTCP接続のみをキャプチャします)両方を対象とする同様のツールTCPおよびUDPは素晴らしい
更新2
他のツール(wiresharkなど)を組み合わせたスクリプトも役立ちます。
そのため、簡単で明確な「ヒットした」ソリューションが見つからなかったので、控えめなもの、修正、リファクタリング、その他のオプションを用意する必要がありました。
ツールを上から見ましたか?マニュアルページによると:
「カーネルモジュール「netatop」がインストールされている場合、ネットワーク負荷はプロセスごとに表示されます。」
iftop
を使用して、特定のポートのトラフィック量を分析し、lsof
を使用して、どのプロセスがどのポートを使用しているかを判断しますか?
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
これはファイルにパイプ可能でなければなりません。
私が知っている利用可能な2つのネットワークグラフィックス監視ソリューションがあります。それらからPID固有のデータをプルできるはずです。