Как я узнаю, какой процесс поглощает мою пропускную способность?


185

Я думаю, что я являюсь жертвой ошибки здесь. Иногда, пока я работаю (я до сих пор не знаю, почему), мой сетевой трафик достигает 200 КБ / с и остается таким, даже несмотря на то, что я не занимаюсь интернетом.

Это иногда случается со мной с использованием процессора. Когда это произойдет, я просто запускаю topкоманду, чтобы выяснить, какой процесс ответственен, а затем killэто. Проблема в том, что у меня нет возможности узнать, какой процесс отвечает за интенсивное использование сети. И монитор ресурсов, и topкоманда сообщают мне только о моем общем использовании сети, но ни один из них не сообщает мне о конкретной сетевой информации.

Я нашел здесь вопросы о мониторинге общего использования полосы пропускания, но, как я уже говорил, это не то, что мне нужно. Есть ли другая команда, которую я могу использовать, чтобы узнать, какой процесс выходит из-под контроля?

Команда iftopдает результаты, которые полностью не согласуются с информацией, сообщаемой системным монитором. В то время как последние утверждают, что существует высокий сетевой трафик, первые утверждают, что всего 1 КБ / с.

Я уже пытался убить все очевидные (Firefox, менеджер обновлений, Pidgin и т. Д.) Без удачи. Пока что перезапуск машины - единственный способ избавиться от проблемы.

Ответы:


222

У меня был большой успех с сабами . Он должен работать от имени пользователя root, но есть разные способы сортировки статистики (например, КБ / с или общая пропускная способность, отслеживаемая с момента запуска nethogs).

Кроме того, если вы используете беспроводную связь, вам нужно передать устройство к нему.

Установите его с помощью команды: sudo apt-get install nethogs

Пример: sudo nethogs wlan0


При ближайшем рассмотрении действительно раздражает, что предполагается, что терминал всегда имеет ширину 80 символов, и усекает команду.
Ли Ло

3
Это было давно, но этот ответ на самом деле значительно проще.
Малабарба

2
nethogsэто хорошо, но кажется , что на моем компьютере используется гораздо больше процессоров, чемiftop
aidan

4
Будьте предупреждены об ошибке, приводящей кnethog
невозможности

3
Вам не нужно передавать устройство, если вы используете беспроводную связь. sudo nethogsработает отлично.
Ads20000

55

Используйте, iftopчтобы найти порт TCP на вашем компьютере, который получает наибольшее количество трафика. Затем используйте, sudo netstat -tupчтобы найти процесс, «владеющий» этим портом.

Это процесс, который вы ищете.

PS: должно работать и для UDP тоже.


Спасибо, команда работает, но я получаю странные результаты. Системный монитор требует около 180 КБ / с, а iftopвсего 1 килобайт в секунду.
Малабарба

1
Я принимаю ответ, так как он отвечает на оригинальный вопрос. Но мне будет приятно, если я смогу понять, что здесь происходит.
Малабарба

iptop отображает статистику для одного интерфейса. Я не уверен, что системный монитор просматривает только один интерфейс или все из них. Если это так, то трафик будет отображаться системным монитором, но не показываться iftop, что нормально, потому что вы все равно хотите смотреть на свой интернет-интерфейс (а не на lo). Я только что проверил iftop на моей системе, и он показал, что я ожидал. Имейте в виду, однако, что iftop отображает в среднем более 2 с, 10 с, 40 с соответственно. Я запускал iftop как 'sudo iftop -i eth0 -nPB', как вы его запустили?
Ли Ло

Я запустил это как sudo iftop -B -i eth0, это означает, что это только смотрело на мой интернет-трафик правильно? Мне не пришло в голову, что системный монитор может проверять и другие интерфейсы. По иронии судьбы, проблема исчезла 10 минут назад (через много часов), поэтому я не могу проверить еще iftopраз. Что означает интерфейс lo?
Малабарба

3
Поскольку на экране iftop много цифр, я создал скриншот, на котором выделил интересующий вас номер. Сравните это с системным монитором. Скриншот находится по адресу imgur.com/2iuiI . «lo» означает localhost, это интерфейс, через который локальные программы могут общаться друг с другом.
Ли Ло

14

Возможно, вы захотите посмотреть ntop- что должно отслеживать сетевую активность на уровне процесса. Вы можете найти ntopв Центре программного обеспечения или сsudo apt-get install ntop

Для инструкции по установке, следуйте их странице http://packages.ntop.org/


2
недоступно в Ubuntu 17.04 (zesty)
Шади

см. packages.ntop.org/apt-stable для репозиториев для более поздних версий Ubuntu. также этоapt-get install ntopng
dw1

7

Другой альтернативой является iptraf. Он не покажет вам PID процесса, но скажет вам, какое соединение использует сколько пропускной способности.


6

Поздний ответ, но у меня была такая же проблема. Оказалось, что это Ubuntuone. Обнаружил, что запустив tcpdump. Я прошел ту же самую кривую обучения по идентификации процесса.

Из моих заметок :

Ubuntu box информация о подключении

Этим утром я запустил свой рабочий стол Ubuntu 10.04 и обнаружил, что через несколько минут интернет-соединение сканируется. Я видел это на Windows-боксах раньше, и 99% времени это шпионское ПО. Итак, мне нужно было исследовать ... стиль командной строки.

tcpdump, Показывает, Ubuntuone сходит с ума.

Система> Настройки> Ubuntu One. Выключите всю синхронизацию. Это сделал это.

Итак, я думаю, что хотел бы увидеть все сетевые подключения и то, что они делают. Я могу

netstat -cW (список сетевых подключений постоянно в широком формате, чтобы внешние адреса не усекались)

lsof -i |grep -v 'localhost' (список открытых файлов, соответствующих любому интернет-адресу, grep, чтобы удалить все открытые файлы, связанные с localhost - я думал здесь, что я не хочу видеть локальные сервисы, так как они, вероятно, не влияют на использование сети).

Некоторые вещи, чтобы забрать:

  1. Нужно узнать о журналах Ubuntu для устранения неполадок.
  2. Нужно больше узнать о tcpdump, поэтому я начну с этого урока Дэниела Мисслера .

Примечание редактора: Этот ответ имел в виду статью о мастере, которая предназначена только для приглашенных пользователей. Так как этот ответ имеет заметные отклики, поэтому он ценен. Я нашел копию статьи на Wayback Machine . И включил это здесь.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.