4.4к
0
0
Скопировать ссылку
Telegram
WhatsApp
Vkontakte
Одноклассники
Назад

Обзор утилиты iPerf для тестирования пропускной способности сети

Время чтения 8 минут
Нет времени читать?
Скопировать ссылку
Telegram
WhatsApp
Vkontakte
Одноклассники
4.4к
0
0
Нет времени читать?
Скопировать ссылку
Telegram
WhatsApp
Vkontakte
Одноклассники

Привет! Меня зовут Александр Бархатов, я DevOps-инженер в крупнейшем продуктовом холдинге. Довольно часто системные администраторы и технические специалисты, обслуживающие компьютерные сети, должны следить за загрузкой сетевого канала. При необходимости они рассчитывают пропускную способность сети, чтобы выяснить, сколько данных можно по ней передать. Для такой задачи идеально подходит утилита iPerf. В этой статье мы установим ее на операционной системе Ubuntu и запустим несколько тестов, чтобы выяснить пропускную способность сетевого канала.

Обзор утилиты iPerf для тестирования пропускной способности сети

Отличие iPerf2 от iPerf3

У утилиты есть две версии: iPerf2 и iPerf3. Первой версии не существовало: это повторная реализация другой программы под названием ttcp, которую прекратили разрабатывать в 2006 году.

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

У iPerf3 нет обратной совместимости с iPerf2. Официально третья версия программы поддерживает только дистрибутивы на основе Linux, а для всех остальных операционных систем существуют только неофициальные сборки. С полным списком всех отличий можно ознакомиться по ссылке

В этой статье мы будем использовать iPerf2.

Установка iPerf

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

Для тестирования пропускной способности сети нам понадобятся два сервера, один из которых будет выступать в роли клиента. Утилиту будем устанавливать на оба сервера.

Для установки iPerf2 на операционной системе Ubuntu 22.04 достаточно выполнить команду:

apt update && apt -y install iperf

После завершения установки выведем версию утилиты при помощи команды: 

iperf -v

Если в ответ команда вернула версию iPerf, установка прошла успешно.

Дополнительно отмечу, что если вы используете фаервол или другое средство для контроля сетевого трафика, то необходимо открыть порт 5001 — стандартный порт, по которому работает iPerf2. 

Ниже приведены примеры команд открытия порта 5001 для стандартных межсетевых экранов, которые используются в различных дистрибутивах Linux по умолчанию.

При использовании UFW:
ufw allow 5001

При использовании iptables:
# Для входящих соединений по протоколу TCP:
iptables -I INPUT -p tcp --dport 5001 -j ACCEPT
# Для исходящих соединений по протоколу TCP:
iptables -I OUTPUT -p tcp --sport 5001 -j ACCEPT

При использовании программы firewalld по протоколу TCP:
firewall-cmd --permanent --add-port=5001/tcp

Тестируем пропускную способность сети между двумя серверами

На этом этапе iPerf уже установлена на оба сервера. 

Для того чтобы проверить пропускную способность сети, сначала необходимо запустить iPerf на стороне сервера:

iperf -s

После запуска команды выше сервер будет ожидать подключения со стороны клиента.

Теперь запускаем iPerf на клиенте, чтобы подключиться к серверу. Необходимо знать IP-адрес или доменное имя сервера, на котором запущен iPerf. Для запуска клиента используем команду, где 80.90.188.215— адрес сервера:

iperf -c 80.90.188.215

После того как клиент успешно соединится с сервером, начнется проверка пропускной способности сети, которая по умолчанию длится 10 секунд. После этого результат отобразится на клиенте и на сервере. В нашем примере пропускная способность сети составляет 196 Мбит/с.

Отмечу, что после завершения тестирования программа на клиенте закроется автоматически, в то время как сервер будет продолжать работать в ожидании новых подключений. Чтобы выйти из сервера, необходимо нажать сочетание клавиш Ctrl + C. Однако это только завершит работу программы, а сам сервис iPerf продолжат работу в фоновом режиме «демона». Чтобы отключить утилиту полностью, придется перезапускать сервер/устройство.

Изменение порта сервера iPerf

По умолчанию iPerf использует порт 5001. Однако можно использовать любой другой незанятый порт на вашем сервере/устройстве. Для этого нужно добавить в команду опцию -p, после которой необходимо указать номер порта:

iperf -s -p 5020

На стороне клиента также потребуется указать новый порт, используя опцию -p:

iperf -c 80.90.188.215 -p 5020

Результат тестирования предоставлен на скриншоте ниже:

Изменение времени тестирования пропускной способности сети

Время проверки пропускной способности можно увеличить или уменьшить. Для этого используется опция -t на стороне сервера, после которой необходимо указать время в секундах. Например, зададим в качестве времени 5 секунд:

iperf -s -t 5

Изменение интервала отображения результатов

По умолчанию при выполнении тестирования как на стороне сервера, так и на стороне клиента информация, отображаемая в терминале, появляется каждую секунду. Если вы долго тестируете пропускную способность (например, час или более), со временем в терминале накопится много информации. Чтобы уменьшить ее поток, можно воспользоваться опцией -i, после которой указать число в секундах. Оно определит, с какой периодичностью в консоли будут отображаться результаты работы утилиты. Например, можно отображать данные только каждые 2 секунды: 

iperf -s -i2

Изменение единицы измерения пропускной способности сети

По умолчанию данные отображаются в формате Мбит/сек. Но при желании его можно изменить. iPerf поддерживает следующие единицы измерения:

  • k — килобиты;
  • m — мегабиты;
  • g — гигабиты;
  • K — килобайты;
  • M — мегабайты;
  • G — гигабайты;
  • T — терабайты.

Например, запустим отображение результатов на сервере в гигабайтах. Для этого используем опцию -f, после которой укажем символ, отвечающий за необходимую единицу измерения:

iperf -s -f G

Число параллельных потоков (подключений) используется для получения максимальной нагрузки на канал:

iperf -s -P 2

Использование дуплексного режима

Если нужно оценить пропускную способность сети в обоих направлениях (дуплексный режим), то есть от клиента до сервера и обратно, необходимо воспользоваться опцией -d, которая задается на клиенте:

iperf -s -d

На сервере ответ будет следующим:

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

Комментарии0
Тоже интересно
Комментировать
Поделиться
Скопировать ссылку
Telegram
WhatsApp
Vkontakte
Одноклассники