Как использовать iperf3 для тестирования скорости сети между серверами

6 минут чтения
Средний рейтинг статьи — 4.7

iperf3 — это бесплатная кроссплатформенная утилита с открытым исходным кодом для измерения пропускной способности сети в реальном времени. Она помогает проверить максимальную достижимую скорость канала в IP-сетях (поддерживает IPv4 и IPv6) и является одним из самых удобных инструментов для диагностики сети.

С помощью iperf3 можно настраивать параметры времени, буферов и протоколов (TCP, UDP, SCTP), что делает его полезным не только для диагностики, но и для тюнинга сетевых соединений.

Установка iperf3

На большинстве дистрибутивов Linux iperf3 есть в стандартных репозиториях:

# Ubuntu/Debian
sudo apt install iperf3 -y
 
# CentOS/RHEL
sudo yum install iperf3 -y

Основные режимы работы

iperf3 работает по модели клиент–сервер.

Один хост запускается в режиме сервера:

iperf3 -s

Другой — в режиме клиента, указывая IP сервера:

iperf3 -c 192.168.1.10

Пример вывода

$ iperf3 -c 192.168.10.1
 
Connecting to host 192.168.10.1, port 5201
[  5] local 192.168.10.2 port 50234 connected to 192.168.10.1 port 5201
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-1.00   sec   112 MBytes   940 Mbits/sec
[  5]   1.00-2.00   sec   113 MBytes   946 Mbits/sec
[  5]   2.00-3.00   sec   113 MBytes   947 Mbits/sec
[  5]   3.00-4.00   sec   112 MBytes   941 Mbits/sec
[  5]   4.00-5.00   sec   113 MBytes   945 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-5.00   sec   564 MBytes   945 Mbits/sec                  sender
[  5]   0.00-5.00   sec   563 MBytes   944 Mbits/sec                  receiver

В отчёте видно:

  • Interval — время теста.
  • Transfer — объём переданных данных.
  • Bandwidth — пропускная способность канала.

Расширенные возможности

Тестирование UDP:

iperf3 -c 192.168.10.1 -u -b 100M

Ключ -u включает UDP, -b задаёт целевую скорость.

Обратный тест (сервер → клиент):

iperf3 -c 192.168.10.1 -R

Двусторонний тест:

iperf3 -c 192.168.10.1 -d

Параллельные потоки (например, 4):

iperf3 -c 192.168.10.1 -P 4

Задаём размер TCP-окна:

iperf3 -c 192.168.10.1 -w 500K

Новые возможности iperf3

Изначально iPerf был разработан в рамках проекта NLANR/DAST. Современная версия — iperf3 — поддерживается и развивается организацией ESnet / Lawrence Berkeley National Laboratory. Программа распространяется под лицензией BSD (3-clause) и продолжает активно обновляться.

С каждым релизом появляются новые функции, расширяющие возможности тестирования сети. Вот некоторые из последних добавленных фич:

  • Игнорирование TCP slowstart (-O) — позволяет пропустить первые секунды теста, когда соединение находится в фазе медленного старта, и получить более честные результаты.
  • Установка целевой пропускной способности (-b) — можно задавать лимит скорости как для UDP, так и для TCP-тестов (например, -b 100M).
  • Задание метки потока IPv6 (-L) — полезно для тестов в IPv6-сетях, где требуется работать с метками потоков.
  • Выбор алгоритма управления перегрузкой (-C) — можно указывать конкретный TCP congestion control (например, cubic, reno, bbr).
  • Поддержка SCTP (--sctp) — позволяет использовать протокол SCTP вместо TCP.
  • Вывод в формате JSON (-J) — удобен для парсинга результатов и интеграции с системами мониторинга.
  • Тест чтения с диска:
    • сервер: iperf3 -s
    • клиент: iperf3 -c testhost -i 1 -F filename
  • Тест записи на диск:
    • сервер: iperf3 -s -F filename
    • клиент: iperf3 -c testhost -i 1

Итоги

iperf3 — мощный инструмент для диагностики и оптимизации сетей. Он помогает измерить:

  • пропускную способность канала;
  • потери пакетов;
  • джиттер;
  • стабильность соединения.

Перед оптимизацией параметров сети всегда полезно провести замеры с помощью iperf3.

6 минут чтения
Средний рейтинг статьи — 4.7

Настроить мониторинг за 30 секунд

Надежные оповещения о даунтаймах. Без ложных срабатываний