Поиск по сайту:

Как использовать bmon для мониторинга пропускной способности сети в Linux


С помощью приложения bmon для Linux вы можете увидеть использование пропускной способности ваших сетевых подключений. Однако понимание более мелких деталей требует некоторой детективной работы, поэтому мы сделали это за вас!

Как работает bmon

Динамические графики и статистика в реальном времени, показывающая активность на различных сетевых интерфейсах, могут дать вам отличную информацию о производительности вашей сети и потреблении полосы пропускания. Это именно то, что bmon предоставляет вам прямо в окне терминала.

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

Однако следует отметить, что поначалу статистика команды bmon может сбивать с толку. Например, три из них называются «IP6 Reasm/Frag». Что с этим делать?

Тем не менее, после того, как вы взломали код, показания команды бесценны, если вы хотите получить более подробное представление о вашем сетевом трафике.

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

Установка bmon

Чтобы установить bmon в Ubuntu, используйте эту команду:

sudo apt-get install bmon

Чтобы установить в Fedora, введите следующее:

sudo dnf install bmon

Для Manjaro команда следующая:

sudo pacman -Sy bmon

Дисплей bmon

Введите bmon и нажмите Enter, чтобы запустить программу. Экран bmon разделен на несколько областей. Первые три помечены как «Интерфейсы», «RX» и «TX». Центральная панель отображает подробную статистику и графики.

На панели «Интерфейсы» показаны сетевые интерфейсы, которыми оснащен ваш компьютер. Он также показывает дисциплину очередей (qdisc), которую использует каждый сетевой интерфейс (подробнее об этом позже).

На панели «RX» отображаются полученные биты в секунду и пакеты в секунду для каждого интерфейса и его очереди. Панель TX показывает переданные биты в секунду и пакеты в секунду для каждого интерфейса и его очереди.

На нашем компьютере установлено только два интерфейса: петлевой интерфейс (также называемый петлевым адаптером) и проводной адаптер Ethernet. Интерфейс обратной связи называется «lo», а интерфейс Ethernet — «enp0s3».

Адаптер Ethernet на вашем компьютере может иметь другое имя. Если вы используете ноутбук, вы также увидите беспроводной адаптер, и его имя, вероятно, будет начинаться с «wl».

bmon отображает информацию о выбранном в данный момент сетевом интерфейсе. Выбранный интерфейс — это тот, рядом с которым выделен знак «больше» (>). Вы можете нажать стрелки вверх и вниз, чтобы переместить знак «больше чем» и выбрать интерфейс, который вы хотите отслеживать. Мы выбрали сетевой адаптер.

Теперь, когда мы находимся на активном сетевом интерфейсе, мы видим некоторую активность на графиках и в показаниях. Если вы не видите никаких графиков, растяните окно терминала вниз.

Нажмите клавиши со стрелками влево и вправо, чтобы изменить отображаемую статистику. Для некоторых графиков вам придется нажать H, прежде чем они будут заполнены; те, кто требует этого, скажут вам об этом.

Чтобы увидеть статистику для сетевого интерфейса, растяните окно терминала, пока оно не станет достаточно высоким, чтобы отобразить их, а затем нажмите D, чтобы отобразить их. Если вы нажмете I (для информации), вы увидите небольшое количество дополнительной информации.

Если вы развернете окно терминала, оно отобразит несколько графиков. Нажмите Меньше (<) и Больше (>), чтобы добавить или удалить пары графиков. Если вы нажмете G, он полностью включает и выключает отображение графиков.

Когда вы нажимаете знак вопроса (?), вы видите экран справки «Краткий справочник» с обычными нажатиями клавиш.

Нажмите знак вопроса (?) еще раз, чтобы закрыть экран «Краткий справочник».

Подробная статистика

Если окно вашего терминала достаточно высокое и широкое (растяните его, если это не так), вы можете нажать «D», чтобы включить или выключить подробный вид.

Количество столбцов, которые вы видите, зависит от ширины окна терминала. В стандартном окне терминала из 80 столбцов вы увидите два. Чем шире окно, тем больше столбцов вы видите. Однако вы не получите больше статистики с более широким окном; вы все равно увидите тот же набор цифр. Но столбцы будут короче.

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

Каждый столбец содержит набор статистических данных. Имя значения, а также полученные (RX) и переданные (TX) значения отображаются для каждой статистики. Если какие-либо значения отображаются через дефис (-), это означает, что статистика по этому направлению не ведется.

Некоторые статистические данные являются только входными (полученными) или внешними (переданными). Например, дефис (-) в переданном столбце указывает, что статистика недействительна для исходящих пакетов и будет применяться только к входящим пакетам. В верхней строке показан принятый и переданный трафик в байтах (слева) и пакетах (справа).

Все остальные статистические данные перечислены в алфавитном порядке, переходя от столбца к столбцу. Некоторые из них имеют одно и то же имя. Мы объясним, что все они означают ниже. Мы также указали сокращенные имена. Если IPv6 не упоминается, эта статистика относится к IPv4.

Статистика в левой колонке выглядит следующим образом:

  • Байты: трафик в байтах.
  • Ошибка прерывания. Число ошибок прерывания. Где-то на пути соединения между источником и местом назначения часть программного обеспечения вызвала прерывание соединения.
  • Столкновения. Количество ошибок столкновений. Два или более устройств пытались отправить пакет одновременно. Это не должно быть проблемой в полнодуплексной сети.
  • Ошибки CRC: количество ошибок проверки циклическим избыточным кодом.
  • Ошибки. Общее количество ошибок.
  • Ошибка кадра. Число ошибок кадра. Фрейм — это сетевой контейнер для пакета. Ошибка означает, что были обнаружены искаженные кадры.
  • ICMPv6: количество пакетов трафика Internet Control Message Protocol v6.
  • Ошибки ICMPv6: количество ошибок ICMP v6.
  • Рассылка IP6. Количество передач IPv6, которые отправляются на все устройства в сети.
  • Пакеты IP6 CE. CE означает «клиентский край». Обычно это относится к маршрутизаторам. Они подключаются к границе поставщика (PE) службы подключения, на которую подписан клиент.
  • Доставки IP6. Количество входящих пакетов IPv6.
  • Пакеты IP6 ECT(1): явное уведомление о перегрузке (ECN) позволяет одному концу сетевого соединения предупредить другое о надвигающейся перегрузке. Пакеты помечаются флагом, который служит предупреждением. Принимающая сторона может снизить скорость передачи, чтобы попытаться избежать перегрузки и возможной потери пакетов. Пакеты ECN-Capable Transport (ECT) помечаются флагом, указывающим, что они доставляются с помощью ECN-Capable Transport. Это позволяет промежуточным маршрутизаторам реагировать соответствующим образом. Пакеты ECN типа 1 сообщают принимающей стороне о необходимости включения ECN и добавления его к исходящим передачам.
  • Ошибки заголовка IP6. Количество пакетов с ошибками в заголовке IPv6.
  • Многоадресные пакеты IP6. Количество многоадресных пакетов IPv6 (разновидность широковещательной рассылки).
  • Пакеты IP6 без ECT: количество пакетов IPv6, не помеченных как ECT(1).
  • Повторная сборка/фрагментация IP6 выполнена успешно: количество пакетов IPv6, которые были фрагментированы из-за размера и успешно собраны после получения.
  • Тайм-ауты повторной сборки IP6. Количество пакетов IPv6, которые были фрагментированы из-за размера, но не смогли собраться после получения из-за тайм-аутов.
  • Усеченные пакеты IP6: количество усеченных пакетов. Когда пакет IPv6 передается, он может быть помечен как кандидат на усечение. Если какие-либо промежуточные маршрутизаторы не могут обработать пакет из-за того, что он превышает максимальную единицу передачи (MTU), маршрутизатор усекает пакет, помечает его как таковой и пересылает в пункт назначения. Когда он получен, дальний конец может отправить пакет ICMP обратно к источнику, сказав ему обновить свою оценку MTU, чтобы сократить свои пакеты.
  • Отброшенные пакеты IP6. Количество удаленных пакетов IPv6. Если какие-либо устройства между источником и получателем не были настроены правильно и их настройки IPv6 не работают, они не будут обрабатывать трафик IPv6; он будет удален.
  • Пакеты IP6. Общее количество всех типов пакетов IPv6.
  • Пропущенная ошибка. Количество пакетов, отсутствующих при передаче. Пакеты нумеруются, чтобы можно было воссоздать исходное сообщение. Если какие-то элементы отсутствуют, их отсутствие бросается в глаза.
  • Нет обработчика: количество пакетов, для которых не найден обработчик протокола.
  • Ошибка окна. Количество ошибок окна. Окно пакета — это количество октетов в заголовке. Если это содержит ненормальное число, заголовок не может быть интерпретирован.

Статистика в правом столбце выглядит следующим образом:

  • Пакеты. Пакетный трафик.
  • Ошибки оператора связи. Количество ошибок оператора связи. Это происходит, если возникает проблема с модуляцией сигнала. Это может указывать либо на несоответствие дуплексного режима между сетевым оборудованием, либо на физическое повреждение кабеля, разъема или разъема.
  • Сжато: количество сжатых пакетов.
  • Отброшено: количество отброшенных пакетов, которые в результате не достигли пункта назначения (возможно, из-за перегрузки).
  • Ошибки FIFO: количество ошибок буфера в порядке поступления (FIFO). Буфер передачи сетевого интерфейса переполнен, так как он не очищается достаточно быстро.
  • Ошибки пульса. Оборудование или программное обеспечение может использовать регулярный сигнал, чтобы показать, что они работают правильно, или разрешить синхронизацию. Число здесь показывает, сколько «сердечных сокращений» было потеряно.
  • Ошибки контрольной суммы ICMPv6. Количество ошибок контрольной суммы сообщений Internet Control Message Protocol v6.
  • Ошибки IP6-адресов: количество ошибок из-за неверных IPv6-адресов.
  • Широковещательные пакеты IP6. Количество широковещательных пакетов IPv6.
  • Ошибки контрольной суммы IP6: количество ошибок контрольной суммы IPv6. Пакеты ICMP и протокола пользовательских дейтаграмм (UDP) в IPv6 используют контрольные суммы, а обычные IP-пакеты IPv6 — нет.
  • Пакеты IP6 ECT(0): они обрабатываются так же, как пакеты ECT(1).
  • Переадресовано IP6: количество доставленных пакетов IPv6 с одноадресной рассылкой. При одноадресной рассылке пакеты передаются от источника к получателю через цепочку промежуточных маршрутизаторов и серверов пересылки.
  • Многоадресные рассылки IP6. Количество пакетов IPv6, доставленных при многоадресной рассылке. При многоадресной рассылке пакеты одновременно отправляются группе получателей (именно так работает Wi-Fi).
  • IP6 без маршрута: количество ошибок маршрута. Это означает, что пункт назначения недоступен, поскольку невозможно рассчитать маршрут к дальнему концу.
  • Ошибки повторной сборки/фрагментации IP6: количество пакетов IPv6, которые были фрагментированы из-за размера и не удалось собрать после получения.
  • Запросы повторной сборки/фрагментации IP6: количество пакетов IPv6, которые были фрагментированы из-за размера и должны были быть повторно собраны после получения.
  • Ip6 Too Big Errors: количество полученных сообщений ICMP «слишком большой», указывающих на то, что были отправлены пакеты IPv6, размер которых превышает максимальную единицу передачи.
  • Ошибки неизвестного протокола IP6. Количество пакетов, полученных с использованием неизвестного протокола.
  • Октеты IP6. Объем полученных и переданных октетов. IPv6 имеет заголовок из 40 октетов (320 бит, 8 бит на октет) и минимальный размер пакета 1280 октетов (10 240 бит).
  • Ошибка длины. Количество прибывших пакетов со значением длины в заголовке, которое короче минимально возможной длины пакета.
  • Многоадресная рассылка. Количество многоадресных трансляций.
  • Ошибки превышения. Количество ошибок превышения. Либо буфер приема переполнен, либо пришли пакеты со значением кадра больше поддерживаемого, поэтому они не могут быть приняты.

Дополнительная информация

Если вы нажмете I (как в «Информации»), он переключит дополнительные информационные панели. Если дополнительная информация не отображается, окно недостаточно велико. Вы можете нажать D, чтобы отключить подробную статистику, G, чтобы отключить графики, или вы можете растянуть окно.

Дополнительная информация следующая:

  • MTU: максимальная единица передачи.
  • Operstate. Рабочее состояние сетевого интерфейса.
  • Адрес. MAC-адрес сетевого интерфейса.
  • Режим. Обычно используется значение по умолчанию, но вы можете видеть туннельbeet или <ро. Первые три относятся к безопасности IP (IPSec). Настройкой по умолчанию обычно является режим transport, в котором полезные данные шифруются. Обычно это используют виртуальные частные сети (VPN) «клиент-сайт». В VPN типа сеть-сеть обычно используется режим туннеля, в котором весь пакет шифруется. В режиме связанного сквозного туннеля (beet) туннель создается между двумя устройствами с фиксированными, скрытыми IP-адресами и другими видимыми IP-адресами. Режим ro – это метод оптимизации маршрутизации для мобильного IPv6.
  • Семейство. Используемое семейство сетевых протоколов.
  • Qdisc: дисциплина очереди. Это может быть установлено на red (случайное раннее обнаружение), codel (контролируемая задержка) или fq_codel (справедливая организация очереди с контролируемой задержкой).< /li>
  • Флаги. Эти индикаторы показывают возможности сетевого подключения. Наше соединение может использовать  широковещательную и  многоадресную передачи, а интерфейс Up (рабочий и подключенный).
  • IfIndex. Индекс интерфейса — это уникальный идентификационный номер, связанный с сетевым интерфейсом.
  • Широковещательный: широковещательный MAC-адрес. При отправке на этот адрес полученные пакеты транслируются на все устройства.
  • TXQlen: размер очереди передачи (вместимость).
  • Псевдоним. Псевдоним IP дает физическому сетевому соединению несколько IP-адресов. Затем он может предоставлять доступ к разным подсетям через одну сетевую карту. На нашем тестовом компьютере псевдонимы не используются.

bmon — довольно забавное существо — в каком-то смысле ни рыба, ни птица. Графики обладают примитивным очарованием и дают вам хорошее представление о том, что происходит.

Однако, учитывая ограничения рендеринга в ASCII, нельзя ожидать, что они будут сверхточными. Тем не менее, случайный взгляд может сказать вам, является ли соединение максимальным, таинственным образом лишенным трафика или где-то посередине.

С другой стороны, подробная статистика именно такая: подробная и детализированная. В сочетании с несколько небрежным подходом к их маркировке это еще больше затрудняет их расшифровку.

Надеюсь, приведенное выше описание сделает bmon немного более доступным. Это действительно полезный и легкий инструмент, с помощью которого вы можете отслеживать состояние сетевого трафика и потребление полосы пропускания.

RELATED: Best Linux Laptops for Developers and Enthusiasts