プロセスごとの帯域幅情報を取得するには、ネットワーク監視システムをインストールする必要がありますが、利用できるツールは多数あります。
セットアップの容易さの順:
多くのセットアップを必要としない単純なパッケージは iftop です。これにより、プロセスごとの帯域幅が表示されます。 シンプルなリアルタイム ソリューションが必要な場合は、おそらくこれが必要です。
- インターフェースごとの帯域幅を取得するには、
bwm-ng
インターフェースごとのリアルタイムの使用状況を表示する小さなパッケージです。 netstat
開いている接続が一覧表示され、ほとんどのシステムに既に存在するはずです- ntop は、ネットワーク監視をサポートするカーネル モジュールをインストールすると、プロセスごとの TCP 接続も監視できるシステム監視用の非常に便利なツールです。
- Gacti、nagios、ntop、および ganglia は、1 台のサーバーからエンタープライズ ネットワーク全体へのセットアップに応じて、ホスト、システム、サービス、プロトコルなどごとにネットワーク監視を実行できる、いくつかのより重いシステムです。
ganglia
の実際の例については、mediawiki サーバー監視を参照してください。 行動中。
ネイティブ netstat を使用した 5 秒間隔でのリアルタイムの使用状況の連続ポーリング
netstat --interfaces=eth0 -c 5
カーネル インターフェイス テーブル
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 0 601670041 0 0 0 290653338 0 0 0 BMRU
eth0 1500 0 601796657 0 0 0 290721761 0 0 0 BMRU
awk を使用すると、関心のある特定のフィールドを監視できます。以下の例では、2 つの RX 列と TX 列を監視するだけで、エラーなしで受信または送信されたパケットの数が表示されます (RX-OK/TX-OK)
netstat --interfaces=eth0 -c 5 |awk '{ print $4 "\t" $8 }'
RX-OK TX-OK
605142559 292429624
605142595 292429661
nethogs と呼ばれる単純なパッケージがあります。 、個々のプロセスによって使用される帯域幅を示し、リストを並べ替えて、最も集中的なプロセスを一番上に置きます。
# Ubuntu or Debian
$ sudo apt install nethogs
# Fedora or CentOS
$ sudo yum install nethogs -y