Як перевірити мережеву продуктивність за допомогою iperf?
Мережеві проблеми майже завжди проявляються однаково: усе працює, але повільно. Коли треба зрозуміти, що саме гальмує — провайдер, маршрутизатор, тунель чи сервери, потрібні окремі вимірювання швидкості. Без них складно зрушити з місця.
Щоб отримати об’єктивні дані про канал між двома хостами, інженери використовують iperf. Про нього розкажемо далі.
Що таке iperf?
iperf — це утиліта з відкритим кодом, яка вимірює продуктивність IP-мережі. Вона працює у форматі «клієнт — сервер»: один хост приймає тестовий трафік, інший його генерує. iperf може працювати з TCP та UDP, показувати пропускну здатність, а в UDP-режимі — також втрати й коливання затримки.
Його часто використовують у датацентрах, корпоративних мережах, хмарних середовищах, а також при налаштуванні тунелів, VPN або під час діагностики проблем зі швидкістю.
Як з’явився iperf і чому існує дві версії?
Проєкт iperf розпочався у лабораторії National Laboratory for Applied Network Research. Пізніше інструмент розділився на дві гілки:
- iperf2 — розвиток оригінального коду;
- iperf3 — переписана реалізація від ESnet та Lawrence Berkeley National Laboratory.
Важливо: ці версії несумісні між собою, мають різні ключі та інколи відмінний вивід. Обидві поширюються під BSD-ліцензією й доступні на Linux, Windows та macOS.
Сьогодні в більшості технічних статей і документацій використовують саме iperf3, оскільки він отримує регулярні оновлення та має чистішу кодову базу.
Навіщо використовують iperf?
Мережеві проблеми часто важко діагностувати, тому iperf вирішує кілька практичних завдань:
- оцінка реальної пропускної здатності між двома серверами;
- перевірка якості каналу перед міграцією сервісів;
- тестування VPN, тунелів, хмарних інстансів;
- пошук вузьких місць у складних маршрутах;
- перевірка, чи не лімітує канал мережевий інтерфейс, маршрутизатор або провайдер.
Завдяки простим командам можна швидко отримати відповідь: проблема у мережі чи ні.
Можливості iperf
Хоч утиліта й невелика, під капотом у неї досить інструментів, щоб провести майже будь-яке базове мережеве тестування.
Iperf уміє:
- перевіряти продуктивність як TCP, так і UDP-трафіку;
- задавати цільову швидкість у режимі UDP (-b), щоб моделювати різні навантаження;
- запускати паралельні потоки (-P), коли потрібно протестувати пропускну здатність під більшим навантаженням;
- робити тест у зворотному напрямку (-R), щоб оцінити аплоад без додаткових команд;
- змінювати інтервал оновлення статистики (-i), якщо треба бачити дані частіше чи рідше;
- працювати через нестандартні порти (-p), коли стандартні закриті або зайняті;
- прив’язуватися до конкретного мережевого інтерфейсу (-B), щоб точно виміряти потрібний канал.
Для більшості інженерних завдань цього більш ніж достатньо: iperf підходить і для швидкої діагностики, і для детального вимірювання пропускної здатності мережі.
Переваги та недоліки iperf
Після того як ми розібралися, що таке iperf і для чого він використовується, логічно оцінити його сильні сторони та обмеження. Це допоже зрозуміти, у яких випадках інструмент підходить найкраще, а де варто обрати інший підхід до вимірювання мережевої продуктивності.
Переваги
1. Показує реальну пропускну здатність, а не «обіцяні» цифри
iperf фактично навантажує канал і демонструє, скільки трафіку лінк може пропустити тут і зараз. Жодних умовних «до 1 Гбіт/с» — тільки практичний результат.
2. Гнучкий у налаштуванні тестів
Можна змінювати тип трафіку, кількість потоків, швидкість, інтервали виводу та інші параметри. Це дозволяє моделювати різні робочі сценарії — від легкого тесту до стресового навантаження на високошвидкісні канали.
3. Працює майже на всіх платформах
Linux, Windows, macOS, маршрутизатори, мережеві ОС — інструмент доступний у більшості середовищ, де потрібні вимірювання мережевої продуктивності.
4. Дає швидкий та зрозумілий результат
Після запуску видно ключові метрики: пропускну здатність, затримки, втрати пакетів, варіацію затримок (jitter).
Недоліки
1. Синтетичний характер тесту
Це не поведінка конкретного сервісу — це тестове навантаження.
2. Потрібен контроль над обома хостами
Потрібно встановити утиліту і на клієнт, і на сервер.
3. Може вплинути на робочу мережу
TCP-тест легко займе весь канал. На продакшні з цим краще бути обережним.
4. Відмінності між версіями
iperf2 та iperf3 мають різні ключі та іноді різну логіку роботи.
Як працює iperf: принцип та базові приклади
Уся логіка iperf проста:
- один хост запускається в режимі сервера;
- інший підключається до нього як клієнт;
- утиліта передає дані певний час і фіксує статистику.
Це не покрокова інструкція, а радше демонстрація того, як виглядає використання інструмента на практиці.
Запуск сервера (iperf3)
iperf3 -s
Сервер буде слухати порт 5201 і очікувати клієнтських підключень.
Запуск TCP-тесту
iperf3 -c 192.168.1.10
Результат — таблиця з інтервалами часу, обсягом переданих даних та пропускною здатністю. TCP намагається використати канал повністю.
Паралельні TCP-потоки
iperf3 -c 192.168.1.10 -P 4
Підходить для високошвидкісних лінків (10G і більше), де один потік може не завантажити канал.
UDP-тест зі швидкістю 100 Мбіт/с
iperf3 -c 192.168.1.10 -u -b 100M
У цьому режимі видно втрати, jitter та фактичну доставлену швидкість.
Тест у зворотному напрямку
iperf3 -c 192.168.1.10 -R
Клієнт ініціює тест, але трафік іде від сервера до клієнта.
Особливості iperf, на які варто звернути увагу
- UDP обмежений до 1 Мбіт/с, тому для реального тестування слід задавати швидкість вручну.
- iperf2 використовує порт 5001, iperf3 — 5201.
- Паралельні потоки не підсумовуються в один графік — кожен потік має свій рядок у статистиці, а підсумкова швидкість буде в кінці.
- На Windows результати можуть бути нижчими через особливості TCP-стека та інколи через обмеження апаратних драйверів.
Підсумок
iperf — це інструмент, який дає чесний погляд на продуктивність мережі. Він не замінює моніторинг, не діагностує сервіси й не розв’язує проблеми автоматично. Але iperf дає те, чого часто не вистачає в інфраструктурі — зрозуміле числове підтвердження того, як поводиться мережа.
Якщо працюєш із серверами, хмарами або DevOps-процесами, уміння інтерпретувати ці дані — обов’язкова навичка. Курси ITEDU допомагають сформувати основу і впевнено рухатися до складніших рівнів.