Вопрос или проблема
У меня есть кластер с одним сервером под управлением rhel-8 в качестве головного узла и 10 вычислительными узлами, также работающими под управлением rhel-8. Существует две сети: сеть 1 Гбит/с на обычных кабелях cat6 и сеть infiniband mellanox, на которой на головном узле работает opensm
. Сеть 1 Гбит/с находится на сетевом порту eno2
на головном узле и вычислительных узлах, а сеть infiniband находится на порту ib0
.
Есть ли способ увидеть или наблюдать сетевой трафик? Когда выполняется анализ, пользователи могут указать своему программному обеспечению использовать либо одну сеть, либо другую — очевидно, что использование более быстрой сети infiniband должно быть лучше — есть ли способ в Linux проверить, где происходит сетевой трафик, на eno2
или на ib0
?
И тогда, можно ли сопоставить сколько трафика я наблюдаю, в связи с общей пропускной способностью/вместимостью данной сети?
Ответ или решение
Для управления сетевым трафиком и его мониторинга в Linux существуют различные инструменты и утилиты, которые могут быть применены для анализа и отслеживания сетевой активности. В данном случае, у вас есть два сетевых интерфейса: eno2 для 1Gbps сети и ib0 для сети Infiniband. Каждый из этих интерфейсов имеет свои особенности и возможности, и важно уметь различать трафик, проходящий через каждый из них.
Теоретическая часть
В Linux существует множество инструментов для мониторинга и анализа сетевого трафика. Вот некоторые из наиболее популярных:
-
iftop: Утилита, аналогичная top, но для сетевых соединений. Отображает текущие подключения и скорость передачи данных по каждому из них.
-
nload: Показывает трафик в реальном времени для каждого сетевого интерфейса. Отображает входящий и исходящий трафик в графическом виде в терминале.
-
bmon: Ещё один удобный инструмент для мониторинга трафика в реальном времени. Предоставляет информацию об уровне передачи пакетов и битрейт всех интерфейсов.
-
iptraf-ng: Большая консольная утилита для мониторинга сети, предоставляющая подробную статистику по IP-адресам и уровню интерфейсов.
-
ethtool и ibstat/ibstatus: Эти утилиты позволяют проверить состояние сетевых интерфейсов, включая скорость соединения и активность, что особенно полезно для проверки работы ваших Infiniband соединений.
-
sar: (часть пакета sysstat) позволяет вам собирать данные об использовании сети, доступной пропускной способности и других метриках.
-
netstat и ss: Обе утилиты предоставляют информацию об активных соединениях и статистике протоколов.
-
tcpdump: Для более углубленного анализа трафика на уровне пакетов, хотя это требует больших навыков и внимательности.
Пример использования
Рассмотрим пример использования некоторых упомянутых инструментов для проверки сетевого трафика:
-
iftop: запустите
sudo iftop -i eno2
илиsudo iftop -i ib0
. Это позволит вам увидеть текущие соединения и их активность для каждого из интерфейсов. Вы сможете оценить, какие IP-адреса наиболее активно используют сеть. -
nload: просто введите
nload
в командной строке, и вы получите графические отображения загрузки каждого интерфейса. Вы сможете переключаться между интерфейсами с помощью клавиш со стрелками. -
ethtool и ibstat: для проверки скорости и состояния сетевого интерфейса используйте
ethtool eno2
иibstat
соответственно. Они предоставят информацию о скорости линка и текущем состоянии.
Применение на практике
Для понимания, насколько трафик в текущий момент времени подходит к максимальной пропускной способности сети, необходимо иметь представление о теоретическом пределе и текущем использовании. Например, для 1Gbps сети на eno2, максимально возможная скорость передачи данных составляет около 125 МБ/с. Для сети Infiniband пропускная способность может быть значительно выше в зависимости от поколений технологии (до 6.8 ГБ/с и более).
Важно регулярно мониторить и анализировать собранные данные, чтобы своевременно обнаруживать узкие места, перегрузки или неправильно настроенные приложения, которые могут влиять на производительность сетей. Используя утилиты, описанные выше, вы сможете оценить, насколько эффективно используется выделенная пропускная способность каждого интерфейса и добавить необходимые корректировки в конфигурацию сетевого оборудования или приложений, если это необходимо.
В конечном итоге, грамотный мониторинг сетевого трафика позволит не только подтвердить эффективность использования высокоскоростных соединений, но и обеспечить оптимальную производительность и надежность всей инфраструктуры вашего кластера.