самоучитель iperf3: Тест скорости сети в Linux и Windows

10 мин чтения - 7 мая 2026 г.

hero section cover
Содержание
  • самоучитель iperf3: Измерение производительности сети в Linux и Windows
  • Установка iperf3
  • Настройка сервера
  • Выполнение клиентских тестов
  • Расширенные тесты
  • Настройка и устранение неполадок
  • Видеорекомендации
Поделиться

Установите iperf3, проведите тесты пропускной способности и настройте буферы TCP для получения точных результатов в Linux и Windows. Охватывает тестирование UDP, двунаправленное и 10GbE+

самоучитель iperf3: Измерение производительности сети в Linux и Windows

iperf3 - это инструмент командной строки для измерения пропускной способности сети, джиттера и потери пакетов между двумя машинами. Он использует модель клиент-сервер: одна машина слушает, другая отправляет трафик, и вы получаете точные цифры пропускной способности. В этом руководстве рассказывается об установке, базовых и расширенных тестах, а также о том, как настроить систему для получения точных результатов на высокоскоростных линиях связи.

Установка iperf3

Debian / Ubuntu

sudo apt update
sudo apt install iperf3

Подтвердите установку с помощью iperf3 --version. Установите его как на сервер, так и на клиентские машины.

Fedora / CentOS / Rocky / Alma

На Fedora 22+ или CentOS 8+, Rocky или AlmaLinux:

sudo dnf install iperf3

В CentOS 7 вместо этого используйте yum. Если пакет не найден, сначала включите репозиторий EPEL:

sudo yum install epel-release
sudo yum install iperf3

Если ваш брандмауэр активен, откройте порт 5201:

sudo firewall-cmd --add-port=5201/tcp --permanent
sudo firewall-cmd --reload

Windows

Загрузите автономный исполняемый файл с iperf.fr или с репозитория ar51an/iperf3-win-builds GitHub. Распакуйте его в папку C:\iperf3, затем проверьте:

cd C:\iperf3
iperf3.exe -v

Чтобы запустить iperf3 из любой директории, добавьте папку в системный PATH через Свойства системы > Дополнительно > Переменные среды. Вам также нужно будет создать входящее правило брандмауэра, разрешающее TCP на порту 5201 в брандмауэре Windows Defender.

Настройка сервера

Запустите сервер с:

iperf3 -s

По умолчанию он прослушивает TCP-порт 5201. Чтобы запустить его в фоновом режиме с протоколированием:

iperf3 -s -D --logfile /var/log/iperf3.log

Убедитесь, что он запущен, с помощью ss -tulpn | grep 5201.

Если порт 5201 заблокирован в вашей сети, используйте -p, чтобы выбрать другой порт. Чтобы привязаться к определенному интерфейсу, используйте -B:

iperf3 -s -B 192.168.1.10

Для одноразовых тестов iperf3 -s -1 обрабатывает одно клиентское соединение и затем выходит. На каналах с высокой пропускной способностью (40 Гбит/с+) запускайте несколько экземпляров сервера на разных портах, чтобы обойти ограничения однопоточного процессора.

Убедитесь, что ваш брандмауэр разрешает трафик на выбранном порту. На Ubuntu/Debian с UFW:

sudo ufw allow 5201/tcp
sudo ufw allow 5201/udp   # if testing UDP

Выполнение клиентских тестов

Базовый тест TCP

iperf3 -c 192.168.1.10

Этот тест измеряет пропускную способность загрузки по TCP в течение 10 секунд. Увеличьте продолжительность с помощью параметра -t:

iperf3 -c 192.168.1.10 -t 30

На каналах 10 Гбит/с или 25 Гбит/с скорость одного TCP-потока часто достигает 3-5 Гбит/с из-за ограничений одноядерного процессора. Используйте параллельные потоки, чтобы насытить канал:

iperf3 -c 192.168.1.10 -P 8

Чтение результатов

Каждая интервальная линия показывает Transfer (переданные данные) и Bitrate (пропускная способность). Для TCP также смотрите:

  • Retr (повторные передачи). Высокие цифры означают потерю пакетов или перегрузку.
  • Cwnd (окно перегрузки). Если оно низкое или застряло, значит, ограничения на размер буфера или окна ограничивают пропускную способность.

На чистом канале 1 Гбит/с ожидается около 940 Мбит/с после накладных расходов протокола. В конце теста отображаются итоговые строки отправителя и получателя. В стабильной сети они должны совпадать.

Для тестов UDP( флаг-u ) в вывод добавляется джиттер (дисперсия прибытия пакетов) и потерянные/общие дейтаграммы. Джиттер менее 1 мс и 0% потерь идеально подходят для трафика реального времени, например VoIP.

Полезные флаги

ФлагНазначение
-c <IP>Подключение к серверу
-p <порт>Использовать определенный порт (по умолчанию: 5201)
-t <сек>Продолжительность теста в секундах (по умолчанию: 10)
-i <sec>Интервал отчета
-P <num>Параллельные потоки
-uРежим UDP
-b <n>MЦелевая полоса пропускания (UDP; по умолчанию 1 Мбит/с, если не указано)
-RОбратный режим (сервер отправляет, клиент получает)
-w <n>KРазмер окна TCP / буфера сокета
-JВывод JSON
-ZZerocopy (снижает нагрузку на процессор на быстрых линиях связи)

Расширенные тесты

Двунаправленное тестирование

Флаг --bidir (iperf3 3.7+) тестирует загрузку и выгрузку одновременно:

iperf3 -c 192.168.1.10 --bidir

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

Обратный режим

Флаг -R меняет поток данных таким образом, что сервер отправляет, а клиент получает. Это позволяет измерить скорость загрузки без смены ролей:

iperf3 -c 192.168.1.10 -t 30 -i 5 -R

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

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

Тесты UDP выявляют джиттер и потерю пакетов, которые TCP скрывает за ретрансляцией. Всегда задавайте целевую пропускную способность с помощью параметра -b, поскольку по умолчанию iperf3 устанавливает 1 Мбит/с для UDP:

iperf3 -c 192.168.1.10 -u -b 1G

Для имитации VoIP-трафика (100 звонков, 200-байтовые пакеты):

iperf3 -c 192.168.1.10 -u -b 8M -l 200

Контрольные показатели качества: джиттер менее 5 мс хорош для VoIP, более 30 мс вызывает слышимые проблемы. Потеря пакетов более 0,1% заметно ухудшает качество передачи данных в реальном времени.

Настройка и устранение неполадок

Распространенные проблемы

Получаете только 100 Мбит/с на гигабитном канале? Проверьте скорость физического интерфейса с помощью ethtool eth0. Автосогласование иногда не работает и переводит соединение на более низкую скорость.

MSS показывает 536 байт на Ethernet? Вероятно, отключено обнаружение MTU пути. По умолчанию MSS для 1500-байтного MTU составляет 1460 байт. Для проверки используйте параметр -m во время тестирования. MSS размером 536 байт тратит полосу пропускания и добавляет накладные расходы.

Процессор не справляется с быстрыми соединениями? Используйте -Z (zerocopy), чтобы снизить нагрузку на процессор. Для 40 Гбит/с+ запустите несколько экземпляров сервера на разных портах и распределите их между ядрами процессора.

Непоследовательные результаты? Используйте -O 3, чтобы пропустить первые несколько секунд, пока окно перегрузки TCP увеличивается. Оставьте 30 секунд между запусками теста, чтобы очистить сетевые буферы.

Один поток намного медленнее, чем параллельные потоки вместе взятые? Если скорость одного потока составляет 200 Мбит/с, но восемь потоков вместе взятых достигают 1,6 Гбит/с, это означает, что окно TCP или буферы ОС ограничивают скорость одного потока. Настройте буферы ниже.

Настройка буферов TCP

Начните с расчета продукта "пропускная способность-задержка": пропускная способность x RTT. Для канала 10 Гбит/с с RTT 50 мс BDP составляет 62,5 МБ. Установите максимальный буфер как минимум в 2 раза больше BDP.

Добавьте эти параметры в файл /etc/sysctl.d/99-tcp-tuning.conf и примените их с помощью sudo sysctl -p:

ПараметрРекомендуемый (1-10 Гбит/с)
net.core.rmem_max134217728 (128 МБ)
net.core.wmem_max134217728 (128 МБ)
net.ipv4.tcp_rmem4096 131072 134217728
net.ipv4.tcp_wmem4096 131072 134217728
net.core.default_qdiscfq
net.ipv4.tcp_congestion_controlbbr

Держите значение net.ipv4.tcp_moderate_rcvbuf равным 1, чтобы ядро автоматически настраивалось в этих диапазонах. Включите net.ipv4.tcp_window_scaling (установите значение 1) для TCP-окон размером более 64 КБ.

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

Используйте флаг -w в iperf3 для тестирования буферов определенного размера, но учтите, что они не могут превышать rmem_max или wmem_max ядра. Начните с 8 МБ для гигабитных каналов, 512 КБ для 100 Мбит/с.

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

Видеорекомендации

Блог

События этой недели

Другие статьи
самоучитель iperf3: Тест скорости сети в Linux и Windows

самоучитель iperf3: Тест скорости сети в Linux и Windows

Установите iperf3, проведите тесты пропускной способности и настройте буферы TCP для получения точных результатов в Linux и Windows. Охватывает тестирование UDP, двунаправленное и 10GbE+

10 мин чтения - 7 мая 2026 г.

ZFS Snapshots: Как их создавать, восстанавливать и автоматизировать

10 мин чтения - 5 мая 2026 г.

Другие статьи
background image

У вас есть вопросы или вам нужно индивидуальное решение?

icon

Гибкие варианты

icon

Глобальный охват

icon

Мгновенное развертывание

icon

Гибкие варианты

icon

Глобальный охват

icon

Мгновенное развертывание