どのプロセスが帯域幅を使い果たしているかを調べるにはどうすればよいですか?


184

私はここでバグの犠牲になっていると思います。時々、作業中(理由はまだわかりません)、ネットワークトラフィックは最大200 KB / sになり、そのままになります。

これはCPU使用率で時々起こります。その場合は、topコマンドを実行して、どのプロセスが原因であるかを特定し、それを実行killします。問題は、どのプロセスが私の高いネットワーク使用量の原因であるかを知る方法がないことです。リソースモニターとtopコマンドの両方は、ネットワークの合計使用量のみを通知し、どちらも特定のネットワーク情報の処理を通知しません。

ここで総帯域幅使用量の監視に関する質問を見つけましたが、前述したように、それは私が必要とするものではありません。どのプロセスが手に負えなくなっているかを見つけるために使用できる別のコマンドはありますか?

このコマンドiftopは、システムモニターによって報告された情報と完全に一致しない結果を提供します。後者は高いネットワークトラフィックがあると主張していますが、前者はわずか1 KB / sであると主張しています。

私はすでに運の悪いもの(Firefox、update-manager、Pidginなど)をすべて殺そうとしました。これまでのところ、マシンを再起動することが、この問題を取り除く唯一の方法です。

回答:


221

私はネトホグで多くの成功を収めてきました。rootとして実行する必要がありますが、統計を並べ替えるにはさまざまな方法があります(nethogsが開始されてから監視されたKB / sや合計帯域幅など)。

また、ワイヤレスを使用する場合は、デバイスをワイヤレスに渡す必要があります。

コマンドでインストールします: sudo apt-get install nethogs

例: sudo nethogs wlan0


よく見ると、端末の幅が常に80文字で、コマンドが切り捨てられていると想定するのは本当に面倒です。
李Lo

3
しばらく経ちましたが、この答えは実に簡単です。
マラバルバ

2
nethogs良いですが、それは私のコンピューターでより多くのCPU を使用するようですiftop
-aidan

4
いくつかのバージョンの作るバグのため注意してnethog使用不可能に:askubuntu.com/questions/726601/...
Rmano

3
ワイヤレスを使用している場合は、デバイスを渡す必要はありません。sudo nethogs正常に動作します。
Ads20000

55

iftop最も多くのトラフィックを受信して​​いるマシンのTCPポートを見つけるために使用します。次にsudo netstat -tup、そのポートを「所有する」プロセスを見つけるために使用します。

それがあなたが探しているプロセスです。

PS:UDPでも機能するはずです。


おかげで、コマンドは機能しているように見えますが、奇妙な結果が出ています。システムモニターは合計約180KB / sをiftop要求しますが、合計は1秒あたりわずか1キロバイトを要求します。
マラバルバ

1
元の質問に答えるので、私は答えを受け入れます。しかし、ここで何が起こっているのかを理解できればいいと思います。
マラバルバ

iptopは、単一のインターフェースの統計を表示します。システムモニターが1つのインターフェイスだけを見るのか、それともすべてを見るのかはわかりません。その場合、システムモニターには表示されるがiftopには表示されないトラフィックがあります。これは、とにかく(loではなく)インターネットインターフェイスのみを表示したいので問題ありません。私のシステムでiftopをテストしたところ、期待通りの結果が得られました。ただし、iftopはそれぞれ2秒、10秒、40秒の平均を表示することに注意してください。「sudo iftop -i eth0 -nPB」のようにiftopを実行しましたが、どのように実行しましたか?
李Lo

私はそれをとして実行しましたsudo iftop -B -i eth0、つまり、それは自分のインターネットトラフィックだけを見ているということです?システムモニタが他のインターフェイスもチェックしている可能性は私にはありませんでした。皮肉なことに、問題は10分前(数時間後)に消えたのでiftop、今のところ再度確認することはできません。loインターフェースは何を表していますか?
マラバルバ

3
iftop画面には多くの数字があるので、興味のある数字を強調したスクリーンショットを作成しました。それをシステムモニターと比較してください。スクリーンショットはimgur.com/2iuiIにあります。「lo」はlocalhostの略で、ローカルプログラムが相互に通信できるインターフェースです。
李Lo

14

調査したい場合がありますntop-プロセスレベルでネットワークアクティビティを監視する必要があります。あなたntopはソフトウェアセンターで見つけることができますsudo apt-get install ntop

インストール手順については、彼らのページhttp://packages.ntop.org/に従ってください


2
ubuntu 17.04(zesty)では利用不可
-shadi

ubuntuの以降のバージョンのリポジトリについては、packages.ntop.org / apt-stableを参照してください。それもapt-get install ntopng
dw1


6

遅い答えですが、私は同じ問題を抱えていました。Ubuntuoneであることが判明しました。tcpdumpを実行してそれを見つけました。プロセス識別についても同じ学習曲線を経験しました。

私のメモから:

Ubuntuボックス接続情報

今朝、Ubuntu 10.04デスクトップを起動して、数分後にインターネット接続がクロールされることを確認しました。これは以前にWindowsのボックスで見たことがあり、99%の時間はスパイウェアです。そのため、...コマンドラインスタイルを調査する必要がありました。

tcpdump。Ubuntuoneが狂っていることを示しています。

「システム」>「設定」>「Ubuntu One」。すべての同期をオフにします。それでした。

だから、私はすべてのネットワーク接続とそれらが何をしているかを見たいと思っています。私は出来ます

netstat -cW (外部アドレスが切り捨てられないように、ネットワーク接続をワイド形式で連続的にリストします)

lsof -i |grep -v 'localhost'(いずれかのインターネットアドレスに一致する開いているファイルを一覧表示し、localhostに関連付けられている開いているファイルを削除するためにgrepを実行します-ここで考えたのは、ローカルサービスはネットワーク使用率に影響を与えない可能性があるためです)。

持ち帰るいくつかのこと:

  1. トラブルシューティングのためにUbuntuログについて学ぶ必要があります。
  2. tcpdumpについてさらに学ぶ必要があるため、Daniel Miesslerによるこのチュートリアルから始めましょう。

編集者注:この回答は、招待されたユーザーのみを対象としたTinkerのブログスポット記事参照していました。この回答にはかなりの賛成票があるため、価値があります。Wayback Machineに関する記事のコピーを見つけました。そして、それをここに含めました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.