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 або репозиторію GitHub ar51an/iperf3-win-builds. Розпакуйте його до папки типу 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

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

Кожен інтервальний рядок показує передачу (передані дані) і бітрейт (пропускну здатність). Для TCP також дивіться

  • Retr (повторні передачі). Високі значення означають втрату пакетів або перевантаження.
  • Cwnd (вікно перевантаження). Якщо він низький або застряг, обмеження розміру буфера або вікна обмежують пропускну здатність.

На чистому каналі зі швидкістю 1 Гбіт/с очікуйте близько 940 Мбіт/с після накладних витрат на протокол. Тест закінчується підсумковими рядками відправника і одержувача. У стабільній мережі вони повинні збігатися.

Для тестів UDP (прапорець-u ) до результатів додається джиттер (дисперсія надходження пакетів) і кількість втрачених/загальна кількість дейтаграм. Джиттер менше 1 мс і 0% втрат є ідеальним для трафіку реального часу, наприклад, VoIP.

Корисні прапорці

ПрапорецьПризначення
-c <IPПідключення до сервера
-p <портВикористовувати певний порт (за замовчуванням: 5201)
-t <secТривалість тесту в секундах (за замовчуванням: 10)
-i <secІнтервал звіту
-P <num> </num> P <num> </num> P <num> P <num> PПаралельні потоки
-uРежим UDP
-b <n>MЦільова пропускна здатність (UDP; за замовчуванням 1 Мбіт/с, якщо не вказано)
-RРеверсний режим (сервер відправляє, клієнт отримує)
-w <n>KРозмір буфера вікна/сокета TCP
-JJSON вивід
-ZНульова копія (зменшує навантаження на процесор на швидких каналах)

Розширені тести

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

Прапорець --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 за замовчуванням встановлює для UDP 1 Мбіт/с:

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 (нульове копіювання), щоб зменшити навантаження на процесор. Для швидкості 40 Гбіт/с+ запустіть кілька серверів на різних портах і розподіліть їх між ядрами процесора.

Отримуєте суперечливі результати? Використовуйте -O 3, щоб пропустити перші кілька секунд, поки вікно перевантаження TCP зростає. Залиште 30 секунд між тестовими прогонами для очищення мережевих буферів.

Один потік набагато повільніший, ніж паралельні потоки разом узяті? Якщо один потік отримує 200 Мбіт/с, а вісім потоків разом досягають 1,6 Гбіт/с, це означає, що вікно TCP або буфери операційної системи обмежують швидкість одного потоку. Налаштуйте буфери нижче.

Налаштування буферів TCP

Почніть з обчислення добутку пропускної здатності на затримку: пропускна здатність х RTT. З'єднання 10 Гбіт/с з RTT 50 мс дає BDP 62,5 МБ. Встановіть максимальний буфер щонайменше вдвічі більшим за 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: Як створювати, відновлювати та автоматизувати їх

10 хв читання - 5 травня 2026 р.

Більше статей
background image

Маєте запитання або потребуєте індивідуального рішення?

icon

Гнучкі варіанти

icon

Глобальне охоплення

icon

Миттєве розгортання

icon

Гнучкі варіанти

icon

Глобальне охоплення

icon

Миттєве розгортання