самоучитель 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 flag) в выводе добавляются показатели джиттера (колебания времени прибытия пакетов) и потерянных/общего количества датаграмм. Джиттер менее 1 мс и 0% потерь идеально подходят для трафика реального времени, такого как VoIP.

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

ФлагНазначение
-c <IP>Подключиться к серверу
-p <port>Использовать определенный порт (по умолчанию: 5201)
-t <sec>Продолжительность теста в секундах (по умолчанию: 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 без открытия дополнительных портов. Если результаты двунаправленного теста значительно ниже, чем при однонаправленном тестировании, ваш маршрутизатор или кабельный модем, возможно, испытывает трудности с обработкой полнодуплексного трафика.

Режим «Reverse»

Флаг -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? Вероятно, отключена функция Path MTU Discovery. По умолчанию MSS для MTU в 1500 байт составляет 1460 байт. Во время тестирования используйте -m во время тестирования, чтобы проверить. MSS в 536 байт тратит пропускную способность и увеличивает накладные расходы.

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

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

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

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

Начните с расчета произведения пропускной способности и задержки (BDP): пропускная способность 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 flag в iperf3 для тестирования определенных размеров буфера, но учтите, что он не может превышать значение ядра rmem_max или wmem_max. Начните с 8 МБ для гигабитных каналов и 512 КБ для 100 Мбит/с.

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

Рекомендации по видео

Блог

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

Другие статьи
XDP и eBPF для обработки пакетов в Linux

XDP и eBPF для обработки пакетов в Linux

Как XDP и eBPF обрабатывают миллионы пакетов в секунду на уровне драйверов сетевых карт. Бенчмарки, примеры использования DDoS, настройка цепочки инструментов и требования к оборудованию.

14 мин чтения - 27 мая 2026 г.

Почему важно иметь мощный и не тарифицируемый VPS

3 мин чтения - 9 мая 2025 г.

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

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

icon

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

icon

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

icon

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

icon

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

icon

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

icon

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