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

Аналіз результатів

Кожна рядок інтервалу показує 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
-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? Ймовірно, вимкнено 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_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 одразу після налаштування та після будь-яких змін у мережі, щоб вчасно виявити регресії.

Рекомендації щодо відео

Блог

На цьому тижні

Більше статей
Чому важливо мати потужний і нелімітований VPS

Чому важливо мати потужний і нелімітований VPS

Потрібна надійна продуктивність і необмежений трафік? Потужний безлімітний VPS пропонує швидкість, масштабованість і пропускну здатність, які вам потрібні, не турбуючись про обмеження у використанні.

3 хв читання - 9 травня 2025 р.

Як оптимізувати простір для зберігання даних у Linux

15 хв читання - 22 травня 2026 р.

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

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

icon

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

icon

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

icon

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

icon

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

icon

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

icon

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