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

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

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

IPerf является кроссплатформенным инструментом и не требует установки в Windows. Просто загрузите исполняемый файл и запустите его на двух устройствах, пропускную способность сети между которыми необходимо протестировать. IPerf работает в режиме клиент-сервер. На первом устройстве iPerf запускается в режиме сервера (он ожидает трафика от клиента iPerf). На втором компьютере iPerf запускается в режиме клиента, генерирует TCP или UDP-трафик и измеряет максимальную скорость передачи данных.

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

Как установить и использовать iPerf в Windows?

Вы можете скачать iPerf 3.1.3 для Windows по следующей ссылке https://iperf.fr/iperf-download.php. Если вы хотите использовать iPerf 2.0, вы можете получить его здесь. Вам не нужно устанавливать iPerf на Windows, достаточно скачать архив iPerf и распаковать его в локальную директорию на диске. В архиве всего два файла: cygwin1.dll и iperf3.exe.

скачать iperf3 для windows 10 x64скачать iperf3 для windows 10 x64

Вы можете скачать архив 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 в 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

открыть порты iperf 5201 в брандмауэре windows defenderоткрыть порты iperf 5201 в брандмауэре windows defender

Существует несколько реализаций iPerf GUI для Windows. Например, Iperf3-Cygwin-GUI или jperf.

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

jPerf - java-приложениеjPerf - java-приложение

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

Install-Module -Name iPerfAutomate

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

В CentOS/RHEL/Fedora/Rocky Linux/Oracle Linux 8 пакет iperf3 доступен в базовом репозитории AppStream (в CentOS 7 вы можете найти iperf3 в репозитории EPEL).

Вы можете установить его с помощью команды dnf (yum):

# dnf install iperf3

установка iperf3 на linux centos с помощью yum или dnfустановить iperf3 на linux centos через yum или dnf

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

$ sudo apt install iperf3 

Если вы хотите использовать ваш Linux-хост в качестве сервера iperf3, вам нужно открыть TCP/UDP порты 5201 в firewalld (или iptables):

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

Использование iPerf на VMware ESXi

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

Если iPerf не установлен, вы можете вручную загрузить автономный пакет 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. Используйте следующую команду для запуска iPerf на VMware ESXi:

# /opt/iperf/bin/iperf3

На сайте v-front вы можете найти большое количество драйверов и инструментов сообщества для ESXi. Здесь также доступны сценарии для добавления драйверов в установочный образ ESXi.

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

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

запуск iperf на vmware esxiзапуск iperf на vmware esxi

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

# esxcli network firewall set --enabled true

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

# esxcli network ip interface ipv4 get

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

# vmkping IP_address

Запустите iPerf на IP-адресе vmkernel:

# iperf -s -B 192.168.31.50

Использование инструмента iPerf для тестирования скорости/пропускной способности сети

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

# iperf3 –s

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

Server listening on 5201.
Подсказка. аргументы iPerf чувствительны к регистру!

iperf3: запуск сервера прослушивания на linux. 5201 портiperf3: запуск прослушивающего сервера на linux. 5201 порт

В зависимости от настроек брандмауэра между клиентом и сервером, вы можете изменить порт прослушивания, используя аргумент -p [port_number]. Вы можете запустить сервер iPerf с большим размером окна TCP и на другом порту TCP. Используйте команду:

# iperf3 -s -w 32768 –p 5200

  • -w 32768 — измените размер TCP-окон до 32 кБ (по умолчанию он составляет около 8 кБ);
  • -p 5200 — порт, на котором iPerf ожидает соединения (обратите внимание, что iperf2 по умолчанию прослушивает порт 5001, а iperf3 — порт 5201).

Вы можете запустить сервер iPerf в качестве службы Windows, используя аргумент -D.

Я использую компьютер с Windows 10 в качестве клиента iPerf. Откройте командную строку и перейдите в каталог с исполняемым файлом iPerf:
cd c:\tools\iperf
Чтобы запустить тест пропускной способности сети с клиента, укажите адрес сервера iPerf (или имя DNS):
iperf3.exe -c 192.168.1.200

Клиент начнет генерировать сетевой трафик, протестирует соединение в течение 10 секунд и отобразит следующую таблицу результатов.

запустить тест пропускной способности iperfзапустить тест пропускной способности iperf

  • Интервал — интервал тестирования (в сек.);
  • Передача — размер передаваемых данных;
  • Пропускная способность — средняя скорость передачи данных.

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

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

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

В моем примере тест длился 30 секунд. В итоговом отчете нас интересуют значения Пропускная способность столбец, указанный в последнем [SUM] строке. Здесь указана средняя скорость отправки и получения данных по сети. В нашем случае средняя пропускная способность сети между двумя хостами составляет 85,9 Мбит/с. Было передано 307 МБ данных (Передача столбец) с симметричной скоростью (отправитель=получатель).

получение максимальной пропускной способности сети с помощью инструмента iperfполучить максимальную пропускную способность сети с помощью инструмента iperf

Вы можете запустить iPerf в обратном режиме (сервер отправляет данные, а клиент их получает). Для этого используйте -R для этого используйте опцию на клиенте.

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

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

iperf3 -c iperf.scottlinux.com

Обратите внимание, что сервер iPerf3 принимает только одно клиентское соединение одновременно (в iPerf2 разрешено несколько одновременных клиентских тестов). Если сервер iPerf в данный момент обслуживает клиентское соединение, вы получите ошибку: iperf3: ошибка — сервер занят выполнением теста. повторите попытку позже.

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

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

пропускная способность сети пропускная способность сети

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

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

пропускная способность ethernetпропускная способность ethernet

Полный список опций можно отобразить следующим образом:

iperf3 –help

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *