Как узнать, какую пропускную способность использует каждое приложение или процесс?

15

Внезапно я вижу, что моя пропускная способность в нисходящем направлении составляет 400 Кбит / с, что является максимальным значением, которое дает мне провайдер, поэтому приложение загружается с максимальной пропускной способностью.
Дело в том, что я не начал загрузку, поэтому он делает это в фоновом режиме, не сообщая.
Как я могу узнать, какое приложение или процесс использует его?
Или, в принципе, как я могу определить, какую пропускную способность использует каждый открытый процесс или приложение?

Petruza
источник
Я наткнулся на приложение брандмауэра до того, как оно может составить график использования сети для каждого приложения и для каждого пользователя ... но я больше не могу его найти. : /
Джейсон Салаз
HandsOff показывает использование для каждого приложения
hsmiths
было автоматическое обновление программного обеспечения?
jm666
@ jm666: Это был мой первый подозреваемый, но это не так
Петруза

Ответы:

14

Цитата: «Как я могу узнать, какое приложение или процесс использует его?»

Вы можете попробовать nettop (1) в Терминале. Он предварительно установлен и обновляется каждые несколько секунд, чтобы обеспечить панель всех открытых сетевых подключений (по процессам) с их использованием. Лучше, чем, lsofпоскольку он также показывает данные об использовании.

$ nettop

Затем нажмите «d» и найдите странно выглядящие записи или записи с постоянно большим трафиком в столбцах «bytes in» или «bytes out». 'D' указывает неттопу показывать только различия в каждом обновлении экрана.

Примечания по практическому использованию:

Если вы не узнаете имя процесса, Google его.

Если вам не нужен процесс, возьмите pid (число рядом с именем процесса в nettop) и уничтожьте его с помощью kill -9 <pid>. Если это не решит проблему, выясните, можете ли вы удалить процесс.

Если вас интересует, что процесс передает по сети, используйте номер порта клиента для этого конкретного соединения (например, «53133» от 10.0.0.1:53133->74.125.68.100:80), чтобы запустить tcpdump (1), чтобы увидеть данные в обмениваемых пакетах:sudo tcpdump -nnvvXSs 1514 port 53133

Если вас интересует пункт назначения, с которым взаимодействует процесс, но IP-адрес назначения не имеет обратного имени хоста DNS (как в предыдущем примере), попробуйте посетить этот IP-адрес в веб-браузере как https: // IP , щелкните значок сломанного замка в адресной строке и просмотрите сведения о сертификате, чтобы узнать, какой домен обслуживается там (в данном случае * .google.com). Это не будет работать, если SSL-порт 443 не открыт в месте назначения.

2rdmc
источник
Я не понимаю причину отрицательного голосования. AFAICT, ответ - именно то, что ищет OP (как отслеживать, какой процесс использует полосу пропускания).
2
На первый взгляд nettopкажется еще более загадочным, чем top. Например, я не вижу, как получить самые активные процессы на вершине.
hippietrail
4

Вы можете легко просматривать всю сетевую активность из Activity Monitor; он встроен прямо в OS X.

  • Откройте Приложения> Утилиты> Монитор активности
  • Нажмите вкладку Сеть

Монитор активности, вкладка «Сеть»;  Отсортировано по отправленным пакетам

Майкл Томпсон
источник
2
Есть ли способ увидеть пропускную способность в секунду, в отличие от общего количества байтов?
Crummy
@Crummy Если вы щелкнете правой кнопкой мыши по заголовкам столбцов, вы сможете изменить отображаемые столбцы. Не уверен, что есть колонка посекундная, но там должно быть что-то, что может помочь.
Майкл Томпсон
4

Просто чтобы дополнить (потрясающий) неттоп ответ - некоторые жаловались, что вывод загадочный. Для чистого вывода попробуйте:

nettop -P -k state,interface -d

Флаги объяснили:

-P сворачивает строки каждого родительского процесса

-k state,interface удаляет менее информативные столбцы, которые стоят между вами и байтами входных / выходных столбцов

-dактивирует опцию дельта (аналогично нажатию dкнопки)

Используйте hкнопку или запустите man nettopдля некоторых других вариантов.

Berks
источник
3

Rubbernet - это действительно отличное приложение, которое позволяет вам видеть использование Mac на вашем приложении и поддерживает удаленный мониторинг. Вы можете установить плагин Rubbernet на любом Mac, к которому у вас есть административный доступ, а затем отслеживать использование полосы пропускания для каждого приложения для всех компьютеров Macintosh в вашей сети со своего компьютера.

Это стоит денег (30 евро на их сайте, но по какой-то причине это $ 19,99 в Mac App Store, но у них есть полнофункциональная бесплатная пробная версия на их сайте. Я еще не купил приложение, поэтому не могу подтвердить, что вы можете купите одну лицензию для приложения, а затем установите плагин на любое количество компьютеров Mac за дополнительную плату, но, похоже, ситуация такова.

Разработчики - те же самые люди, которые делают IRC-клиент Linkinus.

ссылка на rubbernet удалена, так как она ведет на веб-сайт с поддельным предупреждением об обновлении устаревшей Flash

Роберт Дж Бергер
источник
2

lsof и iftop (прямая ссылка на пакет установки) - лучшие инструменты, которые приходят на ум.

Также взгляните на этот вопрос .

Somantra
источник
Но это не показывает, какое приложение использует пропускную способность
Petruza
@Petruza, вы можете определить программу, связанную с конкретным соединением, используя lsof, а затем отслеживать пропускную способность соединения с помощью iftop. Информации должно быть достаточно для проверки подозрительных соединений / программ.
Сомантра
@Petruza, в вашем случае вы, вероятно, начнете с iftop, чтобы определить соединение, используя вашу пропускную способность, а затем проследите соединение с владельцем приложения с помощью lsof или netstat.
Сомантра
1

Еще одна опция, которая не так хороша, так как она не имеет какого-либо механизма удаленного мониторинга и, похоже, не так хорошо работает, - это OS Track . Его также можно бесплатно найти в Mac App Store . Мне не очень понравилось это приложение, так как оно само по себе потребляло много ресурсов. Но это может быть что-то, что они исправили в более поздней версии.

Роберт Дж Бергер
источник
0

sudo fs_usage может идентифицировать процесс

hsmiths
источник