Содержание

, ,

iperf3

iPerf3 — кроссплатформенная консольная клиент-серверная программа — генератор TCP, UDP и SCTP трафика для тестирования пропускной способности сети. 1

С её помощью можно измерить максимальную пропускную способность сети между сервером и клиентом или провести нагрузочное тестирование канала связи для определения уровня потерь. 2

Для установки утилиту нужно скачать с официального сайта (iperf.fr) и распаковать файлы в удобную папку. Затем открыть командную строку (клавиши Win+R), ввести cmd и перейти в папку с распакованными файлами iPerf3. 2

Пример использования

Запуск сервера на порту по умолчанию

$ iperf3 -s

Запуск сервера на определённом порту

$ iperf3 -s -p 12345

Запуск теста пропускной способности

$ iperf3 -c server

Запуск сервера в UDP-режиме с выводом результатов раз в секунду, на порту 65005

$ iperf -u -s -i1 -p 65005

Тестирование UDP c длиной 100 байт со скоростью 20 Кбит/с в течение 180 секунд (имитация VoIP трафика, запускать нужно в обе стороны).

$ iperf -u -c server_host -l100 -b20k -t180

Передать 10 мегабайт данных на порт 65005

$ iperf -n 10m -p 65005 -c server_host
По умолчанию для iperf3 используется порт 5201 TCP/UDP.

Синтаксис команды iperf3

Общие опции для сервера и клиента:

Основные опции для сервера:

Основные опции для клиента:

Приведем примеры использования команд iperf3 с разными опциями:

Запуск сервера (с настройками по умолчанию):

$ iperf3 -s

Запуск клиента (с настройками по умолчанию):

$ iperf3 -c 192.168.1.143

В наших примерах 192.168.1.143 это IP-адрес сервера iperf3.

Важно! Сервер может принимать соединения одновременно только от одного клиента. Если сервер занят другим клиентом, при попытке тестирования будет появляться ошибка server is busy running a test. try again later. В таком случае нужно подождать освобождение сервера.

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

$ iperf3 -s 5005 #(сервер будет работать на порту 5005)

и в другом окне:

$ iperf3 -s -p 5006 #(сервер будет работать на порту 5006)

Теперь на одном клиенте выполните команду для подключения к серверу, который работает на порту 5005:

$ iperf3 -c -p 5005 192.168.1.143

и на втором клиенте команду для подключения к серверу, который работает на порту 5006:

$ iperf3 -c -p 5006 192.168.1.143

Запуск клиента с выводом более детализированной информации:

$ iperf3 -Vc 192.168.1.143 
$ iperf3 -c -V 192.168.1.143

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

$ iperf3 -c 192.168.1.143 -R

Чтобы увеличить длительность тестирования (по умолчанию 10 сек) используйте ключ -t <сек>:

$ iperf3 -c 192.168.1.143 -R -t 60

В программе можно использовать многопоточный режим тестирования. Чтобы указать количество потоков используйте ключ -P <число> (в данном примере тестирование будет выполняться в 2 потока):

$ iperf3 -c 192.168.1.143 -R -t 60 -P 2

При тестировании с настройками по умолчанию вывод результатов происходит каждую секунду. С помощью ключа -i <сек> можно изменить интервал времени для вывода результатов (в данном примере интервал увеличен до 3 секунд):

$ iperf3 -c 192.168.1.143 -R -t 60 -P 2 -i 3

Можно также указать объем трафика, который необходимо передать при тестировании. Для этого используйте ключ -n <байты>[KMG] вместо ключа -t:

$ iperf3 -c 192.168.1.143 -R -n 500M -P 2 -i 3

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

$ iperf3 -Vc 192.168.1.143 -u -R -t 60

Протокол UDP, в отличие от TCP, не использует алгоритмы контроля доставки пакетов и контроля скорости передачи, и имеет другое поведение в сети. Так как UDP не контролирует скорость передачи данных, это должно делать приложение передающее трафик. По умолчанию установлено ограничение максимальной скорости 1 Мегабит для UDP-трафика. Не указывайте слишком большую максимальную скорость для протокола UDP, т.к. это может привести к перегрузке сети (рекомендуем этот параметр устанавливать до 100 Мегабит). Установить ограничение максимальной скорости можно с помощью ключа -b <биты>[KMG]:

$ iperf3 -Vc 192.168.1.143 -u -R -t 60 -b 100M

Также обращаем ваше внимание на ключ -l <байты>, он устанавливает длину пакета. В режиме UDP устанавливайте этот параметр не более 1400 байт.

$ iperf3 -Vc 192.168.1.143 -u -R -t 60 -b 100M -l 1400