iperf3 Підручник: Вимірювання швидкості мережі в Linux та Windows
10 хв читання - 7 травня 2026 р.

Встановіть 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
Аналіз результатів
Кожна рядок інтервалу показує Transfer (передані дані) та Bitrate (пропускну здатність). Для TCP також зверніть увагу на:
- Retr (повторні передачі). Високі значення означають втрату пакетів або перевантаження.
- Cwnd (вікно перевантаження). Якщо воно низьке або застрягло, обмеження розміру буфера або вікна обмежують пропускну здатність.
На чистому каналі 1 Гбіт/с очікуйте близько 940 Мбіт/с після накладних витрат протоколу. Тест закінчується рядками з підсумками для відправника та одержувача. У стабільній мережі вони повинні майже збігатися.
Для тестів UDP (-u flag) у вихідних даних додаються значення jitter (відхилення часу прибуття пакетів) та втрачені/загальні датаграми. Значення jitter менше 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 |
-Z | Zerocopy (зменшує навантаження на процесор на швидкісних каналах) |
Розширені тести
Двостороннє тестування
Прапор --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? Ймовірно, вимкнено Path MTU Discovery. За замовчуванням MSS для MTU 1 500 байт становить 1 460 байт. -m під час тестування, щоб перевірити. MSS розміром 536 байт марнує пропускну здатність і додає накладні витрати.
Процесор працює на повну потужність на швидкісних каналах? Використовуйте -Z (zerocopy), щоб зменшити навантаження на процесор. Для швидкості 40 Гбіт/с і вище запускайте кілька екземплярів сервера на різних портах і розподіляйте їх між ядрами процесора.
Результати нестабільні? Використовуйте -O 3 , щоб пропустити перші кілька секунд, поки вікно перевантаження TCP розгортається. Залишайте 30 секунд між запусками тестів, щоб очистити мережеві буфери.
Один потік набагато повільніший, ніж сукупність паралельних потоків? Якщо один потік досягає 200 Мбіт/с, а вісім потоків разом — 1,6 Гбіт/с, вікно TCP або буфери ОС обмежують швидкість одного потоку. Налаштуйте буфери нижче.
Налаштування буфера TCP
Почніть з обчислення добутку пропускної здатності та затримки (BDP): пропускна здатність × RTT. Зв'язок 10 Гбіт/с із RTT 50 мс дає BDP 62,5 МБ. Встановіть максимальний розмір буфера щонайменше у 2 рази більшим за BDP.
Додайте ці значення до /etc/sysctl.d/99-tcp-tuning.conf та застосуйте за допомогою sudo sysctl -p:
| Параметр | Рекомендовано (1–10 Гбіт/с) |
|---|---|
net.core.rmem_max | 134217728 (128 МБ) |
net.core.wmem_max | 134217728 (128 МБ) |
net.ipv4.tcp_rmem | 4096 131072 134217728 |
net.ipv4.tcp_wmem | 4096 131072 134217728 |
net.core.default_qdisc | fq |
net.ipv4.tcp_congestion_control | bbr |
Залиште 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 одразу після налаштування та після будь-яких змін у мережі, щоб вчасно виявити регресії.
Рекомендації щодо відео
Чому важливо мати потужний і нелімітований VPS
Потрібна надійна продуктивність і необмежений трафік? Потужний безлімітний VPS пропонує швидкість, масштабованість і пропускну здатність, які вам потрібні, не турбуючись про обмеження у використанні.
3 хв читання - 9 травня 2025 р.
Як оптимізувати простір для зберігання даних у Linux
15 хв читання - 22 травня 2026 р.

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