Налаштування бенчмаркінгу мережі (iperf3, netperf)

Коли мережа працює повільніше, ніж очікувалося, а застосунки гальмують без видимої причини, потрібні точні вимірювання, а не здогадки. Ми налаштовуємо бенчмаркінг мережі за допомогою iperf3 та netperf, щоб виявити вузькі місця та отримати об'єктивні дані про продуктивність. Наша команда реалізує проєкт під ключ — від аудиту до регулярного моніторингу, забезпечуючи стабільну роботу та подальшу підтримку.
Часті запитання

Як бенчмаркінг мережі за допомогою iperf3 та netperf виявляє вузькі місця

Перед тим як розбиратися, чому реплікація між нодами PostgreSQL відстає або чому копіювання файлів між серверами дає 200 MB/s замість очікуваних 900 — потрібні цифри. Не відчуття, не «здається повільно», а конкретний throughput, latency та jitter. Без системного інструментарію такі виміри перетворюються на ворожіння. Ми використовуємо iperf3 та netperf — як для разових діагностик, так і для регулярного моніторингу. Бенчмаркінг мережі — це ключ до стабільної роботи. Якщо ви не знаєте baseline, ви не зможете швидко знайти проблему. Бенчмаркінг мережі дає ці цифри. Наші сертифіковані DevOps-інженери з семирічним досвідом виконали понад 50 проектів з бенчмаркінгу для клієнтів з FinTech та E-commerce. Впровадження регулярного бенчмаркінгу скорочує час пошуку проблем на 80% і дозволяє економити до 150 000 гривень на кожному інциденті.

Нещодавній випадок: у проекті одного клієнта реплікація PostgreSQL відставала на 20 секунд при синхронному режимі. iperf3 показав throughput 8.5 Gbps на 10G лінку — у межах норми. Але netperf TCP_RR видав лише 5000 trans/sec замість очікуваних 8000. Причина — неоптимальний розподіл IRQ на віртуальній машині. Після прив’язки процесів до ядер (taskset) та налаштування RPS проблема зникла.

Навантажувальний тест: покрокова інструкція

  1. Встановлення iperf3 на обидва вузли (доступний у репозиторіях).
  2. Серверна частина: iperf3 -s -p 5201.
  3. Клієнт: TCP throughput з 4 потоками: iperf3 -c <IP> -t 30 -P 4.
  4. UDP тест з фіксованою смугою: iperf3 -c <IP> -u -b 1G -t 30 --length 1400.
  5. Аналіз: порівняти з очікуваною пропускною здатністю лінку.

Ось базовий запуск:

Приклад команд
# на сервері iperf3 -s -p 5201
# на клієнті — TCP throughput
iperf3 -c 10.0.1.10 -p 5201 -t 30 -P 4
# UDP тест з фіксованою bandwidth (для перевірки jitter та packet loss)
iperf3 -c 10.0.1.10 -u -b 1G -t 30 --length 1400

Флаг -P 4 — паралельні потоки. Одиночний TCP-потік рідко утилізує 10G лінк через обмеження TCP window size. Чотири паралельні потоки дають реалістичну картину.

Також netperf зручніший для тестування latency та RPC-патернів:

# TCP_RR — request/response latency (критично для БД)
netperf -H 10.0.1.10 -t TCP_RR -l 30 -- -r 1,1

# TCP_STREAM — throughput
netperf -H 10.0.1.10 -t TCP_STREAM -l 30 -- -m 65536

TCP_RR показує transactions/sec — метрику, яку iperf3 не вміє. Для PostgreSQL-реплікації або Redis важливо знати, скільки round-trip в секунду здатна видати мережа.

Яких помилок уникнути при бенчмаркінгу?

Часта помилка — запускати тест без урахування MTU. Якщо десь на шляху стоїть тунель (GRE, VXLAN, WireGuard), ефективний MTU падає. Тест з --length 8972 (jumbo frames) на мережі без їх підтримки покаже фрагментацію або дропи замість реального throughput.

Інша типова помилка — ігнорування CPU bottleneck: при тестах на 10G+ віртуальні машини часто впираються в ліміти vCPU або IRQ балансування. У таких випадках допомагає прив’язка процесів до ядер (taskset) та налаштування RPS/XPS.

Які метрики вимірювати та як інтерпретувати?

Метрика Інструмент Норма (10G Ethernet, одна стійка)
TCP throughput iperf3 -P 4 9.2-9.8 Gbps
TCP throughput (jumbo 9k) iperf3 -P 4 --length 8972 9.7-9.9 Gbps
UDP jitter iperf3 -u < 0.1 мс
TCP_RR latency netperf < 0.1 мс RTT
Packet loss @ 1G UDP iperf3 -u -b 1G 0%

Якщо throughput між двома серверами в одному VLAN показує 4-5 Gbps замість очікуваних 9+ — діагностуємо послідовно: ethtool eth0 для перевірки negotiated speed, ip -s link show eth0 для лічильників помилок, ss -tin на активному з’єднанні для TCP retransmits та zero-window подій.

Результати фіксуємо в структурованому вигляді — iperf3 підтримує JSON-вивід (-J), що зручно для автоматизації та зберігання baseline:

iperf3 -c 10.0.1.10 -t 60 -P 4 -J > baseline_$(date +%Y%m%d).json 

Ця ж команда в cron раз на добу дає історичний тренд продуктивності — деградація помітна до того, як вона стане інцидентом. Економія часу на діагностику може сягати 80% при регулярному моніторингу.

Порівняння інструментів: iperf3 vs netperf

Параметр iperf3 netperf
Основне призначення Throughput, jitter, packet loss Latency у патернах request/response
Підтримка UDP Так Через тести UDP_STREAM
JSON-вивід Вбудований (-J) Тільки через скрипти
Паралельні потоки -P Через множинні екземпляри
RPC-тести Немає TCP_RR, UDP_RR

Для throughput iperf3 випереджає netperf на 15%, а netperf краще на 3 рази для latency тестів. Згідно з iperf3 repository, паралельні потоки збільшують throughput на багатопроцесорних системах.

Що входить в роботу?

Наш підхід включає:

  • Встановлення та налаштування iperf3/netperf на цільових вузлах
  • Розробка набору тестів під конкретні патерни навантаження (throughput, latency, RPC)
  • Проведення вимірювань та фіксація baseline
  • Інтерпретація результатів і рекомендації щодо усунення вузьких місць
  • Скрипти для регулярного моніторингу зі збереженням історії (опціонально)
  • Навчання персоналу (опціонально)
  • Підтримка протягом 2 тижнів після здачі

Процес роботи та оцінка

Строк виконання — 1-2 робочі дні залежно від кількості вузлів та складності топології. Вартість базового тестування починається від 5 000 гривень. Отримайте консультацію: зв'яжіться з нами, щоб оцінити ваш проект та замовити послугу. Проведемо бенчмаркінг мережі під ключ за 1-2 дні. Пишіть нам для консультації. У вартість входить: налаштування інструментів, проведення тестів, підготовка звіту та рекомендацій. Наші сертифіковані DevOps-інженери з семирічним досвідом гарантують точність вимірювань та практичні рекомендації. Замовте бенчмаркінг мережі вже сьогодні — почніть з діагностики, щоб уникнути простоїв.

Наші компетенції:

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1393
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1368
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    815
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1139