Iperf3 инструкция на русском

Обновлено:
Опубликовано:

Тематические термины: iPerf, Linux, CentOS, Windows

iPerf является кроссплатформенным приложением и может быть установлен на любую популярную операционную систему. В данной инструкции будет рассмотрена установка сервера на Linux CentOS и клиента как на последнем, так и Microsoft Windows.

Установка и запуск
Запуск клиента и проверка сервера
Ключи
Автозапуск
Примеры
Версия для Windows
iPerf и iPerf3
Публичные сервера
Свой публичный сервер
Возможные проблемы

Установка сервера/клиента

По сути, нет отдельного iPerf для сервера или клиента — это один и тот же программный продукт, который может запускаться в режиме сервера или выполнять клиентские команды.

Для начала выполняем установку расширенного репозитория:

yum install epel-release

Устанавливаем iPerf:

yum install iperf3

Открываем порт в брандмауэре:

firewall-cmd —permanent —add-port=5201/tcp

firewall-cmd —permanent —add-port=5201/udp

firewall-cmd —reload

* в данном примере мы открыли порт 5201 (для iPerf по умолчанию) для пакетов TCP и UDP.

Запускаем сервер:

iperf3 -s

На экране появится:

————————————————————
Server listening on 5201
————————————————————

Сервер ждет запросов.

Клиентские запросы и проверка сервера

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

После можно сразу выполнить команду:

iperf3 -c 192.168.0.15

* где 192.168.0.15 — iPerf сервер.

На клиенте мы увидим что-то подобное:

[  4] local 192.168.0.20 port 47068 connected to 192.168.0.15 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec   104 MBytes   873 Mbits/sec   10    391 KBytes
[  4]   1.00-2.00   sec   110 MBytes   921 Mbits/sec    4    393 KBytes
[  4]   2.00-3.00   sec   111 MBytes   928 Mbits/sec    1    478 KBytes
[  4]   3.00-4.00   sec   104 MBytes   875 Mbits/sec    5    423 KBytes

* где:

  • 192.168.0.20 — адрес клиента
  • 192.168.0.15 — адрес сервера
  • ID — идентификатор запросов, нужен для ориентирования, если к серверу идет несколько обращений.
  • Interval — промежуток времени в секундах, на протяжении которого выполнялась передача данных.
  • Transfer — сколько было передано данных за интервал времени.
  • Bandwidth — средняя скорость передачи данных за интервал времени.
  • Retr — количество повторно отправленных TCP-сегментов.
  • Cwnd — одновременно переданных данных.

Все ключи запуска iPerf

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

Ключ Описание
-p Определить порт, на котором будет слушать сервер или отправлять запросы клиент
-f Формат отчетов — kmgKMG (Kbits, Mbits, KBytes, MBytes, …)
-i Задать интервал, в течение которого выполняется одна проверка
-F Указать файл, из которого будут взяты входные данные для запуска
-A Степень нагрузки на процессор
-B Указать, через какой сетевой интерфейс работать
-V Детализированные сообщения в консоли
-J Вывод в формате json
—logfile Весь вывод в отдельный лог-файл
-d Режим отладки (много сообщений)
-v Показать версию программы
-h Вызвать справку по работе с программой

Для сервера:

Ключ Описание
-s Запустить iPerf в режиме сервера
-D Запустить как демона (как службу)
-I Указать pid-файл
-1 Принять запрос от одного клиента и завершить работу

Для клиента:

Ключ Описание
-c Запустить iPerf в режиме клиента
-u Отправлять UDP-пакеты
-b Формат отчетов для bandwidth (средней скорости)
-t Количество секунд, в течение которых будет идти проверка скорости
-n Объем данных для проверки (применяется вместо времени -t)
-k Количество пакетов для проверки (вместо -t или -n)
-l Длина буфера записи/чтения
-P Число параллельных запросов
-R Обратный режим — сервер отправляет, клиент принимает
-w Размер сетевого окна
-C Установить алгоритм управления перегрузкой TCP
-M Задать максимальный размер MTU
-4 Работать только для IPv4
-6 Работать только для IPv6
-Z Использовать метод «нулевой копии» для отправки данных
-O Опустить первые n секунд
-T Задать префикс для каждой строки вывода

Также самый свежий список ключей можно получить командой:

man iperf3

Автозапуск сервера (создание сервиса в systemd)

По умолчанию, программу нужно запускать вручную. Если мы хотим, чтобы сервер запускался автоматически и работал как служба systemd, выполняем инструкцию ниже.

Создаем юнит в systemd со следующим содержимым:

vi /etc/systemd/system/iperfd.service

[Unit]
Description=iPerf Service
After=network.target

[Service]
Type=forking
PIDFile=/run/iperf3.pid
ExecStart=-/bin/iperf3 -s -D -I /run/iperf3.pid
ExecReload=/bin/kill -HUP $MAINPID
Restart=always

[Install]
WantedBy=multi-user.target

* где 

  • Description — описание юнита;
  • After указывает на юнит, после которого может загружаться наш сервис; 
  • Type — тип службы;  
  • PIDFile — путь к pid файлу, в котором хранится номер процесса; 
  • ExecStart — команда, которую нужно выполнить при старте сервиса (в данном примере запускается iPerf в режиме сервера как демон и создает pid-файл);
  • ExecReload — команда для перезапуска службы; 
  • Restart=always — опция, позволяющая автоматически перезапускать сервис, если он перестанет работать;
  • опция WantedBy=multi-user.target позволяет установить для автозапуска службу в обычном многопользовательском режиме.

Перезапускаем systemd:

systemctl daemon-reload

Разрешаем созданный сервис:

systemctl enable iperfd

Запускаем его:

systemctl start iperfd

Проверяем:

systemctl status iperfd

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

Рассмотрим некоторые команды запросов к серверу для проверки скорости соединения.

Использование UDP

iperf3 -c 192.168.0.15 -u

* сам сервер не нужно запускать в UDP-режиме, так как он принимает любые запросы.

Альтернативные порты

Для этого необходимо сначала запустить сервер на нужном порту:

iperf3 -s -p 443

* кстати, можно запустить несколько процессов iperf одновременно, которые будут слушать на разных портах.
* стоит не забывать по настройки брандмауэра. В данном примере понадобиться ввести команды firewall-cmd —permanent —add-port=443/tcp и firewall-cmd —reload.

Теперь можно запускать клиента:

iperf3 -c 192.168.0.15 -p 443

Проверка скорости в течение 30 секунд с интервалами по 2 секунды

iperf3 -c 192.168.0.15 -t 30 -i 2

Несколько параллельных запросов

iperf3 -c 192.168.0.15 -P 3

Отправляем на проверку 3 Гб данных

iperf3 -c 192.168.0.15 -n 3G

Клиент/сервер для Windows

Скачиваем iPerf под Windows с официального сайта. Распаковываем архив и запускаем командную строку (cmd). Переходим в распакованную папку (команда cd).

Можем работать с iperf. Команды такие же, как для Linux, например:

iperf3.exe -c 192.168.0.15

GUI

Для работы с iPerf в графическом интерфейсе есть различные утилиты, например Iperf3-Cygwin-GUI. Скачиваем архив, распаковываем его и запускаем iperf3cygwingui.bat.

В открывшемся окне для простой проверки нужно только прописать адрес iPerf-сервера и нажать кнопку Run Iperf3:

Запуск графической iperf

Однако, на моей практике, программа не заработала, а после запуска зависала (или не запускался iperf3.exe). Проблему удалось решить с помощью скачанного с официального сайта клиента (файлов iperf3.exe и cygwin1.dll), которыми я заменил одноименные файлы в папке bin.

При желании, программу можно также запустить в режиме сервера:

Запуск графического iperf под Windows в режиме сервера

jPerf

Для работы в графическом интерфейсе также есть популярная программа jperf. Ее можно скачать с сайта sourceforge. Однако, она создана с использованием старой версии iperf, поэтому я не стал уделять ей много внимания. В целом, процесс и внешний вид не сильно отличается от Iperf3-Cygwin-GUI.

Совместимость iPerf и iPerf3

Клиент и сервер совместимы, но нужно знать, что по умолчанию, рабочий порт для iPerf — 5001, для iPerf3 — 5201.

Поэтому либо необходимо запускать сервер:

iperf3 -s -p 5001

* также не забываем настроить брандмауэр.

Либо запускаем клиентские запросы командой:

iperf -c 192.168.0.15 -p 5201

Публичные сервера iPerf

Актуальные публичные сервера iPerf можно найти на официальном сайте программы. Внимательно смотрите на описания серверов и рабочие порты.

Пример проверки с использованием сервера во Франции:

iperf3 -c bouygues.testdebit.info -p 5200

или в Индонезии:

iperf3 -c iperf.biznetnetworks.com

Свой публичный сервер

Сервер iPerf может обрабатывать только одно подключение одновременно на порту. Поэтому, в условиях публичного использования необходим его запуск на множестве портов одновременно.

Мы настроим сервер при помощи systemd. Ранее мы уже создавали один юнит для запуска iperf. Повторяем процедуру с небольшими изменениями.

Создаем юнит со следующим содержимым:

vi /etc/systemd/system/iperfd5205.service

[Unit]
Description=iPerfService on port %i
After=network.target

[Service]
Type=forking
PIDFile=/var/run/iperf3.5205.pid
ExecStart=-/bin/iperf3 -s -p 5205 -D -I /var/run/iperf3.5205.pid
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
RuntimeMaxSec=3600

[Install]
WantedBy=multi-user.target

* если сравнить с ранее созданным юнитом, мы добавили запуск сервера на порту 5205.

Перезапускаем systemd:

systemctl daemon-reload

Разрешаем юнит и запускаем сервис:

systemctl enable iperfd5205

systemctl start iperfd5205

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

Возможные ошибки

the server is busy running a test. try again later

В данный момент сервер обрабатывает другой запрос или он завис. Если мы являемся администратором сервера, перезагружаем его, в противном случае, ждем.

Часть работы системного администратора – контролировать загруженность сетевого оборудования и измерять пропускную способность подключаемых каналов (локальной сети, интернета, включая и беспроводные сегменты Wi-Fi). Популярным инструментом для этого является утилита iPerf. Она работает по клиент-серверному принципу и дает точный результат скорости передачи данных.

Инсталляция iPerf

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

Последние версии дистрибутивов доступны по адресам:

  1. Linux, Unix – https://github.com/esnet/iperf/releases
  2. Windows – https://sourceforge.net/projects/iperf2/files/

Инсталляция в Ubuntu и Debian осуществляется командой:

$ sudo apt install iperf3

В операционных системах CentOS и Fedora она выглядит иначе:

$ sudo dnf install iperf3

Перед первым запуском рекомендуется принудительно открыть необходимые порты в брандмауэре, чтобы утилита наверняка заработала. По умолчанию протоколы TCP и UDP используют порт 5201. Выполняется открытие командой:

$ firewall-cmd --permanent --add-port=5201/tcp

$ firewall-cmd --permanent --add-port=5201/udp

$ firewall-cmd –reload

Работать с программой придется в консоли, но особых затруднений это не вызывает, потому что синтаксис и перечень команд относительно просты. Например, запуск серверной части выполняется командой:

$ iperf –s

На экране появится сообщение Server listening on 5201. Оно означает, что сервер ждет запросов от клиентов (программа остается активной вплоть до перезагрузки операционной системы).

iperf

Клиентская часть, если речь идет о рабочих местах на Linux, работает аналогичным образом. Запускаемый файл всего один, различаются только префиксы и параметры вроде IP-адреса.

$ iperf -c 192.168.0.100

В приведенном примере программа будет обращаться к серверу, доступному по IP 192.168.0.100. После буквы —s или -c допускается ввод дополнительных команд, уточняющих задачу и позволяющих сохранить результаты в текстовом файле или вручную указать нестандартный порт.

Комьюнити теперь в Телеграм

Подпишитесь и будьте в курсе последних IT-новостей

Подписаться


Синтаксис и опции iPerf

Перечень опций для серверного и клиентского режима несколько различается. Есть общий список, необходимый для первоначальной настройки программы и увеличения удобства ее эксплуатации при проверке нескольких хостов.

Синтаксис запуска программы простой:

  • на сервере – $ iperf3 -s опции
  • на клиенте – $ iperf3 -c адрес_сервера опции

Главное, заранее записать серверный IP и без особой необходимости не менять номер порта для подключения клиентских машин.

Общий список опций:

  • -p, —port – вручную указать порт на сервере или клиентской машине;
  • -f, —format – изменить формат выводимых данных, доступны значения k, m, g, t, K, M, G, T;
  • -i, —interval – количество времени между выводом результатов тестирования;
  • -F, —file – брать данные для передачи по сети из указанного текстового файла (по умолчанию применяется генератор случайных чисел);
  • -V, —verbose – включается режим вывода подробной информации по обмену в сети;
  • -J, —json – активируется режим отображения в формате JSON;
  • —logfile – будет осуществляться запись происходящего в лог-файл;
  • -forceflush – перед запуском очередного цикла проверки полностью очищать экран;
  • -v, -version – отображается текущая версия приложения.

Непосредственно к серверной части программы относятся всего 3 опции:

  • -D, —daemon – запуск сервера происходит в фоновом режиме;
  • -l, —pidfile – указывается путь, по которому будет записываться PID-файл процесса;
  • -1, —one-off – после завершения проверки пропускной способности канала с одним клиентом автоматически закрыть серверную часть приложения.

На клиентской машине перечень настроек несколько шире (речь идет о консольной версии ПО):

  • —sctp – переключиться на протокол SCTP вместо TCP;
  • -u, —udp – то же самое, но использовать протокол UDP;
  • -connect-timeout – количество миллисекунд до первого подключения к серверу;
  • -b, —bitrate – «ширина» потока, для UDP «по умолчанию» включен режим передачи 1 Мбит/сек, для TCP – без ограничений;
  • -t, —time – время, в течение которого проводится тест («по умолчанию» оно составляет всего 10 секунд);
  • -R, —reverse – проводится «обратный» тест, когда сервер передает данные клиенту, т.е. будет проверен канал на прием данных, а не на их передачу;
  • -P – количество одновременно передаваемых независимых потоков данных;
  • -w – размер окна TCP;
  • -4, —version4 – проверка осуществляется только по протоколу стандарта IPv4;
  • -6, —version6 – то же самое, но речь идет о протоколе IPv6.

Перечисленное количество опций является наиболее популярным. Если хочется освоить их полный пакет, нужно воспользоваться командой $ man iperf3, чтобы получить актуальный список. Он будет сохранен в текстовый файл, если добавить опцию logfile. Но в большинстве случае системному администратору достаточно этих настроек.

Как пользоваться iPerf

В качестве примера использования программы iPerf возьмем опцию -f. Индексы, перечисленные выше, позволяют указывать, в каких единицах измерения хочется увидеть результат. Так, k означает килобиты, m – мегабиты, g – гигабиты, а большие буквы килобайты, мегабайты или гигабайты. Выбор зависит от предполагаемой пропускной способности канала.

$ iperf3 -s -f K

Например, команда $ iperf3 -s -f K включает режим отображения данных в килобайтах. Если нужно переключить порт, он указывается вручную – $ ipref3 -s -p 4000. По умолчанию утилита выводит результаты довольно быстро, каждую секунду, поэтому актуален режим с замедленным выводом – $ iperf3 -c 192.168.0.101 -f M -i 5.

Рассмотренный инструмент полезен для тестирования собственных серверов и канала, выделенного провайдером (для поиска узких мест). Также с помощью утилиты можно проверить разных провайдеров интернета для определения наиболее выгодного варианта в соотношении скорость-цена и иных параметров.

Iperf – кроссплатформенная консольная утилита с открытым исходным кодом, предназначенная для тестирования пропускной способности сети между двумя узлами. Утилита iperf позволяет генерировать нагрузочный TCP и UDP трафик между хостами. С помощью iperf вы можете быстро измерить максимальную пропускную способность сети между сервером и клиентом, провести нагрузочное тестирование канала связи, маршрутизатора, сетевого шлюза (файервола), вашей Ethernet или Wi-Fi сети.

В этой статье мы покажем, как установить и использовать утилиту iPerf для проверки скорости сети в Windows, Linux и VMware ESXi (есть версии iperf для Android, MacOS, RouterOS от MikroTik и других платформ).

Содержание:

  • Установка и использование iPerf в Windows
  • Установка iPerf в Linux
  • Запуск iPerf в VMware ESXi
  • Проверка пропускной способности сети с помощью iPerf

Утилита iPerf является кроссплатформенной и не требует установки, достаточно скопировать и запустить ее на двух устройствах, пропускную способность сети между которыми нужно оценить. iPerf работает в режиме клиент-сервер. На первом компьютере утилита iPerf запускается в режиме сервера (ожидает трафик от клиента). На втором компьютере iPerf запускается в режиме клиента, начинает генерировать TCP/UDP трафик и выполнять измерение максимальной скорости передачи данных. В большинстве случаев сейчас используется версия iPerf3 (поддерживает высокоскоростное UDP тестирование, по умолчанию используется порт 5201 TCP/UDP).

Установка и использование iPerf в Windows

Вы можете скачать iperf 3.1 для Windows по ссылке https://iperf.fr/iperf-download.php или версию iperf2. Достаточно скачать архив iperf и распаковать в локальный каталог на диске. Установка утилиты не требуется. В архиве всего два файла: cygwin1.dll и iperf3.exe.

скачать версию iperf для windows 10

Вы можете скачать архив iPerf и распаковать его на диск с помощью команд PowerShell:

$iPerfZip = "https://iperf.fr/download/windows/iperf-3.1.3-win64.zip"
$TargetFolder = Join-Path $env:TEMP "iperf.zip"$iPerfPath = Join-Path $env:TEMP "iperf"
if (!(Test-Path $iPerfPath))
{ Invoke-WebRequest -Uri $iPerfZip -OutFile $TargetFolder
Expand-Archive -Path $TargetFolder -DestinationPath $iPerfPath
}

Iperf это консольная утилита и для ее запуска нужно использовать командную строку. Откройте командную строку (cmd.exe) и перейдите в каталог с утилитой. Например:

cd c:\tools\iperf

Если вы запустить программу iperf3.exe без параметров, она выведет список доступных опций.

утилита iperf для windows

Утилита iPerf может работать в режиме сервера (параметр -s) или клиента (-c). Если вы запускаете iPerf сервер на Windows, нужно открыть входящие порт 5201 для протоколов TCP и UDP. Можно открыть порты через графический интерфейс Windows Defender Firewall или с помощью команд PowerShell. Создайте и включите правила файервола так:

New-NetFirewallRule -DisplayName 'iPerf-Server-Inbound-TCP' -Direction Inbound -Protocol TCP -LocalPort 5201 -Action Allow | Enable-NetFirewallRule
New-NetFirewallRule -DisplayName 'iPerf-Server-Inbound-UDP' -Direction Inbound -Protocol UDP -LocalPort 5201 -Action Allow | Enable-NetFirewallRule

открыть порт 5201 для iperf в windows

Для Windows есть несколько реализаций графического интерфейса. Например, Iperf3-Cygwin-GUI и jperf.

Утилита jperf написана на Java (для работы на компьютере должна быть установлена Java-машина). Помимо графических рюшечек к CLI интерфейсу, Jperf умеет в реальном времени строить графики пропускной способности канала связи.

Для использования достаточно указать адрес сервера iPerf и запустить проверку.

Jperf 2.0.2 - графический интерефейс

В галерее скриптов PowerShell есть отдельный модуль iPerfAutomate, который можно использовать для получения данных измерения производительности сети из скриптов PowerShell. Вы можете установить модуль так:

Install-Module -Name iPerfAutomate

Установка iPerf в Linux

В дистрибутивах CentOS/RHEL/Fedora 8 пакет iperf3 включен в состав базового репозитория AppStream (в CentOS 7 iperf3 есть в EPEL). Вы можете установить его стандартной командой yum/dnf:

# dnf install iperf3

linux centos: установка iperf3 через yum или dnf

В дистрибутивах Debian/Ubuntu вы можете установить утилиту iperf3 командой:

$ sudo apt install iperf3

Если данный Linux сервер планируется использовать в качестве сервере iperf3, нужно открыть порт 5201 в firewalld (или iptables):

# firewall-cmd --permanent --add-port=5201/tcp
# firewall-cmd --permanent --add-port=5201/udp
# firewall-cmd --reload

Запуск iPerf в VMware ESXi

VMware удалила утилиту iPerf в ESXi 6.7, но вернула его в 6.7U1. Проверьте, что на вашем хосте ESXi установлен iPerf. Подключитесь к консоли ESXi по SSH, перейдите в каталог
/usr/lib/vmware/vsan/bin
и проверьте, есть ли в нем файл iperf или iperf3.

Если iPerf не установлен, вы можете вручную скачать offline bundle с iperf здесь (http://vibsdepot.v-front.de/depot/bundles/iperf-2.0.5-1-offline_bundle.zip), скопируйте его на ESXi хост и установить командой:

# esxcli software vib install -d /iperf-2.0.5-1-offline_bundle.zip –no-sig-check

Утилита будет установлена в каталог /opt/iperf/bin и для ее запуска нужно указывать команду:

# /opt/iperf/bin/iperf3

открыть порт iperf в файерволе vmware esxi

Если вы запускаете iPerf сервер на хосте ESXi, нужно открыть порты 5201. По умолчанию эти порты запрещены в файерволе ESXi. Чтобы открыть их, можно временно отключить файервол:

# esxcli network firewall get# esxcli network firewall set --enabled=false
# esxcli network firewall get

Не забудьте включить файервол ESXi после окончания проверки пропускной способности сети:

# esxcli network firewall set --enabled true

При запуске iPerf в ESXi его нужно привязывать к интерфейсу vmkernel:

# esxcli network ip interface ipv4 get

Проверку доступности между хостами ESXi можно выполнить с помощью:

# vmkping IP address

Запускайте iPerf на полученном IP адресе:

# iperf -s -B 192.168.31.50

Проверка пропускной способности сети с помощью iPerf

Рассмотрим теперь несколько примеров использования iperf для тестирования пропускной способности сети. В этом примере мы будем использовать сервер с CentOS в качестве сервера iperf. Запустим утилиту iperf в серверном режиме:

# iperf3 –s

Сервер iperf запущен, он ожидает соединения на порту TCP/5201.

Server listening on 5201

Важно. Аргументы утилиты iperf регистрозависимы!

запуска iperf3 сервера на примере centos

Можно запустить iperf сервер с большим размером TCP окна и на другом порту:

# iperf3 -s -w 32768 –p 5203

-w 32768 – зададим размер окна TCP в 32 KB (по умолчанию около 8 Кб)

–p 5203 – порт, на котором ожидает подключения iperf (напоминаю, что iperf2 по умолчанию слушает на порту 5001).

Можно запустить сервер iPerf в режиме службы Windows с помощью ключа -D.

В качестве клиента iperf я использую компьютер с Windows 10. Запустите командную строку и перейдите в каталог с исполняемым файлом iperf:

cd c:\tools\iperf

Чтобы запустить проверку сети со стороны клиента, укажите адрес (имя) хоста, где запущен сервер iperf:

iperf3.exe -c 192.168.1.202

Клиент начнет генерировать сетевой трафик и выполнит тестирование канала в течении 10 секунд и выведет примерно такую таблицу:

анализ измерения производительности сети с помощью iperf, результаты

  • Interval – промежуток тестирования (в сек.);
  • Transfer – размер переданных данных за это время;
  • Bandwidth – средняя скорость передачи данных.

Если вы запустили сервер iperf с увеличенным размером TCP окна, вы можете использовать следующую команду для получения максимальной нагрузки на сеть:

iperf3.exe -c 192.168.1.202 -P 8 -t 30 -w 32768 -i 5 -f g

  • -c 192.168.1.202 – IP адрес сервера iperf;
  • -w 32768 — увеличиваем размер TCP окна;
  • -t 30 – время в секундах, в течении которого выполняется тестирование (по умолчанию 10 секунд);
  • -P 8 — число параллельных потоков (подключений), используется для получения максимальной нагрузки на канал;
  • -i 5 – выводить статистику на экран каждые 5 секунд. Параметр удобно использовать при продолжительных тестах (несколько минут, часов);
  • -f m — выводить результаты в Мбит/с. Здесь можно использовать атрибуты kmgKMG (килобиты, мегабиты, мегабайты и т.д.).

В нашем примере тестирование длилось 30 секунд. В итоговом отчете нас интересует значения столбца Bandwidth в последней строке [SUM]. Здесь указаны средняя скорость отправки (sender) и получения данных по сети (receiver).

В нашем случае средняя пропускная способность сети между двумя узлами – 79,7 Мбит/с. Было передано 285 Мб данных (столбец Transfer).

iperf итоговые данные о максимальной скорости передачи данных в сети между двумя хостами

Можно запустить iperf в обратном режиме (сервер отправляет данные, а клиент принимает), для этого на клиенте указывается опция –R.

По-умолчанию утилита генерирует TCP трафик, если вам нужно проверить скорость сети для UDP пакетов, необходимо использовать ключ –u (сервер при этом запускается командой:
iperf3 -s –u
).

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

iperf3 -c iperf.it-north.net

Обратите внимание, что iperf3 не поддерживает несколько одновременных тестов. Если сервер iperf сейчас выполняет тестирование с одним клиентов, то при попытке подключиться к нему с другого вы получите ошибку: iperf3: error — the server is busy running a test. try again later.

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

iperf3.exe -c IP -P 8 -t 30 -w 32768 -d

iperf - тестирование в дуплексном режиме

Во время выполнения теста сете с помощью iperf вы можете следить за нагрузкой на сетевой интерфейс компьютера через Task Manager.

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

Загрузка LAN интерфейса ethernet с помощью iperf

Полный список опций утилиты iperf можно получить так:

iperf3 –help

Iperf – простая и удобная сетевая утилита, которая поможет вам измерить производительность сетевого подключения и максимальную скорость передачи данных между двумя устройствами.

Проверка скорости ответа сервера

Многие клиенты обращаются в службу технической поддержки с подобными претензиями: Я подключаюсь к серверу, но файлы передаются медленно со скоростью 10 MB/s при тарифе 100 Mbit/s. Или: У нас в офисе тариф 1 Gbit/s, и мы арендуем сервер со скоростью 1 Gbit/s, а файлы передаются долго и т.д.

Итак, почему же такое может происходить? Давайте разбираться по порядку. На первый вопрос ответ совершенно прост, это всего лишь разница в единицах измерений. Исторически так сложилось, что все интернет провайдеры всегда предлагали свои услуги измеряя скорость в «битах», в то время как производители программного обеспечения и операционных систем проводят измерения в «байтах», что и приводит к разнице в 8 раз.

Многие скажут, мол подождите, ведь даже если так, все равно не хватает ещё 20 Mbit, или 2,5 MB/s как теперь мы знаем. И тут мы уже подбираемся к следующему вопросу.

Дело в том, что достижение максимальной скорости, указанной по тарифу, возможно в лабораторных условиях и практически невозможно в реальных условиях эксплуатации, что частично подтверждается сервисами проверки скорости интернета (speedtest.net, например). Но не спешите гневаться, никто не пытается украсть у вас эти ~20%. В основном, за счет этой разницы достигается целостность доставки данных.

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

  1. Самая первая из возможных и частых причин, это использование протокола, не подходящего по назначению. При использовании таких протоколов как RDP(Windows)/SSH(Linux) часто скорость передачи файлов, может быть даже менее 10% процентов от ширины интернет канала. Так как основная задача этих протоколов – это поддержание связи для управления удаленным устройством, и если весь канал займет передача файлов, то сервером уже управлять не получится.

  2. Вторая по распространённости причина – это бутылочное горлышко. Под этим термином подразумевают наличие узкого места на пути следования данных. Например, Вы заказали услугу с шириной канала 1 Gbit/s, скорость интернет провайдера составляет 1Gbit/s, но используется устаревший Wi-Fi маршрутизатор, который не может передавать информацию на ваше устройство с такой скорость. Также возможно, что бутылочное горлышко может возникать временно у провайдеров в связи с проблемами, авариями, всплесками нагрузки, не оптимальной конфигурацией оборудования и т.д.

  3. Внутренние механизмы ТСР, влияющие на скорость загрузки. Большинство современных протоколов передачи информации на уровне приложения опираются на более низко уровневые сетевые протоколы. Наиболее часто используемым является протокол TCP. Благодаря TCP разработчикам не нужно повторно реализовывать большое количество функционала, например, проверку доставки пакетов. Но протокол TCP для своей работы создает сессии. Скорость по одной такой сессии редко может превышать 300 Mbit/s, как правило, меньше в несколько раз.

  4. Задержка (пинг/лаг) в сети. Чем больше расстояние между вашим устройством и сервером, тем больше времени требуется для передачи данных туда и обратно из-за задержек в сети.

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

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

Изучив необходимую теорию, можно задаться вопросом, как же правильно измерить скорость к моему серверу или VPS. Для этого существуют различные специальные сервисы, самым популярным из которых, на сегодняшний день, является iPerf3.

iPerf3 – кроссплатформенная консольная клиент-серверная программа, генератор TCP, UDP и SCTP трафика для тестирования пропускной способности сети. Функционал клиента и сервера является полностью бесплатным. Их достаточно просто установить на любой популярной операционной системе.

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

Если вы только планируете стать клиентом компании -Networks и хотите убедиться в скорости сетевого подключения, обратитесь в службу технической поддержки как зарегистрированный пользователь. Вам предоставят адрес с запущенной в роли сервера программой iPerf3.

Пошаговая инструкция запуска iPerf3 для Windows

Для запуска iPerf3 в роли сервера вам обязательно необходимо следовать двум правилам:

  1. Сервер должен быть доступен по сети из точки проверки, там, где iPerf3 будет запущен как клиент.
  2. На сервере должны быть для входящего подключения открыты TCP и UDP порты на котором запущен сервер iPerf3 (по умолчанию — 5201).

После того как Вы скачали программу с официального сайта и убедились в доступности сервера по сети, нам первым делом нужно настроить брандмауэр Windows.

Запустите командную строку от имени администратора и введите по очереди 2 команды:

netsh advfirewall firewall add rule name="Allow TCP Port 5201 for iPerf3" dir=in action=allow protocol=TCP localport=5201

netsh advfirewall firewall add rule name="Allow UDP Port 5201 for iPerf3" dir=in action=allow protocol=UDP localport=5201

Также данное действие можно выполнить в графическом режиме, необходимы права администратора. Для этого запустите «Панель управления» -> «Система и безопасность» -> «Брандмауэр Защитника Windows» слева в столбце с навигацией найдите «Дополнительные параметры».

В открывшемся окне выберите «Правила для входящих подключений»

Итак, на этом этапе нам необходимо создать 2 правила: 1 – для подключения по TCP и 2 – для подключения по UDP. Нажимаем «Создать правило» -> Устанавливаем галочку «Для порта» -> В первый раз оставляем «Протокол TCP, во второй меняем на «Протокол UDP» в поле «Определенные локальные порты» вводим порт 5201 -> Выбираем «Разрешить подключение» -> Устанавливаем галочки напротив всех профилей -> Указываем понятное для Вас имя правила «Allow TCP/UDP Port 5201 for iPerf3»

Когда мы создали разрешающие правила, можем запустить наш iPerf3 в роли сервера. Для этого нам необходимо найти каталог со скаченной и разархивированной программой и открыть в командной строке. Нажимаем по каталогу правой кнопкой мыши с зажатым Shift, выбираем «Открыть окно PowerShell».

Таким образом командная строка откроется в нужной нам директории и нам останется только запустить сервер iPerf3 командой:

.\iperf3.exe -s

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

Теперь на устройстве, с которого будем проводить тестирование, точно так же откроем командную строку, но введем одну из следующих команд для подключения:

.\iperf3.exe -c ip_your_server -P 5 -t 180 -p 5201

.\iperf3.exe -c ip_your_server -P 5 -t 180 -p 5201 -R

Теперь немного подробнее о ключах для запуска:

Ключ Описание
-c ip_your_server Запуск в режиме клиента для подключения к серверу ip_your_server.
Внимание! ip_your_server необходимо заменить реальным адресом.
-P 5 Запускает тестирование в 5 потоков. Рекомендуемые значения от 3 до 5.
-t 180 Тестирование будет длиться в течении 180 секунд.
-p 5201 Указываем порт на котором запущен сервер, в данном случае порт по умолчанию.
-R Запускает тестирование в реверсивном режиме, проверяет скорость от сервера до клиента.

Тестирование в один поток не имеет большого смысла по описанным в начале причинам.

Спустя указанное, в ключе -t количестве секунд, вы увидите усредненный результат по общей скорости:

Также для сравнения необходимо протестировать UDP. Его показатели будут отличаться от TCP. Тестирование UDP в многопоточном режиме нецелесообразно. Однако, необходимо с помощью параметра «-b» задать ширину генерируемого потока. В противном случае он составит 1 Mbit/s. За основу можно взять результаты теста TCP, но завысив его приблизительно в два раза.

iperf3.exe -c ip_your_server -t 180 -p 5201 -u -b 900M

iperf3.exe -c ip_your_server -t 180 -p 5201 -u -b 900M –R

Ключ Описание
-c ip_your_server Запуск в режиме клиента для подключения к серверу ip_your_server.
Внимание! ip_your_server необходимо заменить реальным адресом
-u Запускает тестирование по протоколу UDP.
-b 900 Задаем ширину генерируемого потока.
-t 180 Тестирование будет длиться в течении 180 секунд.
-p 5201 Указываем порт на котором запущен сервер, в данном случае порт по умолчанию.
-R Runs testing in reverse mode, checking the speed from the server to the client.

Теперь, после проведения всех 4х тестов, мы можем сделать полноценные выводы о скорости соединения между двумя точками на Windows.

Пошаговая инструкция запуска iPerf3 для Linux

Тестирование скорости сети на Linux отличается только способом установки пакетов iPerf3. То есть нам все так же необходимо скачать программу и запустить её как сервер на одной стороне и как клиент на другой.

Установка iPerf3 Debian и производных (Ubuntu/Linux Mint/Proxmox):

apt install -y iperf3

Установка iPerf3 RedHat и производных (Centos/Fedora/Oracle Linux)

yum install iperf3

Установка iPerf3 Arch и производных (Manjaro)

pacman -S iperf3

Так как iPerf3 является кроссплатформенной утилитой, то все ключи и команды будут полностью совпадать с ключами для Windows. Также по умолчанию в Linux системах брандмауэр является открытым и не требует предварительных настроек.

Эта статья была полезной?

Также читайте

Previous

Next

Материал из База знаний VINTEO

iPerf3 — консольная утилита. С ее помощью можно измерить максимальную пропускную способность сети между сервером ВКС и клиентом или провести нагрузочное тестирование канала связи для определения уровня потерь.
Перед началом тестирования необходимо запустить iPerf на сервере. Для этого был разработан специальный патч.

Содержание

  • 1 Установка патча на сервер
  • 2 Установка и запуск утилиты
  • 3 Тестирование канала по направлению от клиента к серверу
  • 4 Тестирование канала по направлению от сервера к клиенту
  • 5 Завершение работы утилиты iPerf3 на сервере

Установка патча на сервер

  1. в разделе сервера “Система” перейдите в подраздел “Обновление”;
  2. перейдите на вкладку “Настройки” и, нажав кнопку выбора файла, укажите путь к файлу с патчем. За получением патча необходимо обратиться в службу технической поддержки Vinteo;
  3. нажмите кнопку “Загрузить”. Появится сообщение: “Внимание! Конфигурация успешно загружена и установлена. Система будет запущена в течение 5 минут”;

Установка патча на сервер

4. необходимо дождаться окончания применения. Для этого перейдите в раздел «Система», подраздел «Статус» и дождитесь пока в пункте «Время работы сервера» система не обновит статус работы с «System down» на «System uptime»;

Статус системы

5. Можно приступать к установке утилиты на клиентском ПК.

Установка и запуск утилиты

  1. скачайте и установите утилиту iPerf3 с официального сайта: https://iperf.fr/iperf-download.php/
  2. распакуйте файлы из архива в удобную вам папку.

Папка с файлами iperf

Файлы в папке iperf

3. откройте командную строку (клавиши Win+R) и в появившемся окне введите cmd после чего нажмите Enter (во всех версиях Windows) и перейдите в папку с распакованными файлами iPerf3.

Тестирование канала по направлению от клиента к серверу

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

iperf3 -c <server_ip> -u -w 1m -t 10 -l 1100 -b 1M
  • -с <server_ip> — ключ для запуска в режиме клиента с указанием адреса сервера;
  • -u — указываем что используем UDP протокол.
  • -w 1m — указываем размер буфера iPerf3;
  • -t 10 — указываем время теста 10 сек.;
  • -l 1100 — указываем длину пакета; установите как минимум на 28 байт меньше, чем MTU, чтобы не происходила фрагментация. 1100 байт — это средний размер пакета RTP, поэтому рекомендуем это значение;
  • -b 1M – указываем необходимый битрейт для теста (1 Мбит/сек). Можно использовать модификаторы: K – Килобит, M – Мегабит, G – Гигабит.

Информацию о других ключах и параметрах утилиты можно найти здесь: https://iperf.fr/iperf-doc.php#3doc

Ниже на рисунке показана работа утилиты iPerf.

Тест сети

В нижней части списка после пунктирного разделителя, мы получим средние значения теста:

  1. Interval — период времени тестирования;
  2. Transfer — количество переданных данных;
  3. Bandwidth — информация о пропускной способности.
  4. Lost/Total Datagrams — Количество потерянных и переданных пакетов.

Можно сделать вывод, что было передано 1.18 мегабайт со скоростью 992 Кбит/сек.
Количество потерянных пакетов — 1, что составило 0.089% в соотношении к отправленным 1127 пакетам.

Тестирование канала по направлению от сервера к клиенту

Для тестирования входящей скорости от сервера к клиенту, необходимо в команду добавить ключ -R (reverse mode):

iperf3 -c <server_ip> -u -w 1m -t 10 -l 1100 -b 5M -R

Тест сети 3 -R обр.трафик

В нижней части списка после пунктирного разделителя, мы получим средние значения теста:

  1. Interval — период времени тестирования;
  2. Transfer — количество переданных данных;
  3. Bandwidth — информация о пропускной способности;
  4. Lost/Total Datagrams — Количество потерянных и переданных пакетов.

Можно сделать вывод, что было передано 5.96 мегабайт со скоростью 4.99 Мбит/сек.
Количество потерянных пакетов — 28, что составило 0.089% в соотношении к отправленным 5683 пакетам.

Завершение работы утилиты iPerf3 на сервере

Остановка утилиты iPerf на сервере осуществляется с помощью полной перезагрузки операционной системы сервера.

Будьте внимательны! Во время перезагрузки сервера все конференции и звонки на сервере ВКС будут завершены, а веб-интерфейс будет недоступен некоторое время.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Метод напольный шкаф инструкция
  • Advanced nutrients carboload инструкция
  • Таурин глазные капли инструкция срок годности
  • Zanussi zws 5107 инструкция
  • Нутрилон комфорт для новорожденных инструкция по применению для новорожденных