Отличие 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, при помощи которой можно узнать пропускную способность вашей сети. Эта информация будет особенно полезной техническим специалистам, которые обслуживают и проектируют компьютерные сети, чтобы максимально точно рассчитать передаваемый объем данных.