Iperf тестування пропускної здатності і швидкості мережі

Iperf - утиліта з відкритим вихідним кодом, призначена для тестування пропускної здатності мережі між двома вузлами. Утиліта iperf дозволяє генерувати навантажувальний TCP і UDP трафік між хостами. За допомогою iperf ви можете швидко виміряти максимальну пропускну здатність мережі між сервером і клієнтом, провести тестування навантаження каналу зв'язку, маршрутизатора, шлюзу (брандмауера), вашої Ethernet або Wi-Fi мережі.

У цій статті ми покажемо, як встановити та використовувати утиліту iperf для перевірки швидкості мережі в Windows і Linux CentOS (Є версії iperf для Android, MacOS, RouterOS від MikroTik і інших платформ).

зміст:

  • Версії iperf: iperf2 і iperf3
  • Установка iPerf для Windows
  • Установка iperf в CentOS Linux
  • Вимірювання швидкості мережі за допомогою Iperf

Версії iperf: iperf2 і iperf3

утиліта Iperf є кроссплатформенной і не вимагає установки, досить скопіювати і запустити її на двох пристроях, пропускну здатність мережі між якими потрібно оцінити. Iperf працює в режимі клієнт-сервер. На першому комп'ютері утиліта Iperf запускається в режимі сервера (очікує трафік від клієнта). На другому комп'ютері Iperf запускається в режимі клієнта, починає генерувати TCP / UDP трафік і виконувати вимірювання максимальної швидкості передачі даних.

На поточний момент є дві незалежні гілки iperf, що розвиваються паралельно: iperf2 і iperf3. За великим рахунком ці дві версії iperf сумісні між собою, але використовують різні порти за замовчуванням. У iperf1 / 2 це 5001, в iperf3 - 5201.

  • iperf2 потрібно використовувати для паралельних потоків, двонапрямлених тестів, а також ця версія офіційно підтримується в Windows
  • У iperf3 краще реалізовано високошвидкісне тестування UDP. Код iper3 значно менше і краще оптимізований.

Решта відмінності не настільки істотні, щоб спеціально використовувати специфічну версію (навіть опції запуску у них збігаються). У цій статті ми будемо використовувати iperf3.

Iperf3 офіційно не підтримується в Windows, але працює цілком нормально. Якихось явних проблем або багів я не помітив.

Установка iPerf для Windows

Ви можете завантажити iperf 3.1 для Windows по посиланню https://iperf.fr/iperf-download.php або версію iperf2 (тут). Досить завантажити архів iperf і розпакувати в локальний каталог на диску. Установка утиліта не требуется.В архіві всього два файли: cygwin1.dll і iperf3.exe.

Для Windows є кілька реалізацій графічного інтерфейсу. наприклад, Iperf3-Cygwin-GUI і jperf.

утиліта jperf написана на Java (для роботи на комп'ютері повинна бути встановлена ​​Java-машина). Крім графічних витребеньок до CLI інтерфейсу, Jperf вміє в реальному часі будувати графіки пропускної здатності каналу зв'язку.

Для використання досить вказати адресу сервера iPerf і запустити перевірку.

У галереї скриптів PowerShell є окремий модуль iPerfAutomate, який можна використовувати для отримання даних вимірювання продуктивності мережі з скриптів PowerShell. Ви можете встановити модуль так: Install-Module -Name iPerfAutomate

Установка iperf в CentOS Linux

У CentOS 8 пакет iperf3 включений до складу базового сховища AppStream (в CentOS 7 iperf3 є в EPEL). Ви можете встановити його стандартної командою yum / dnf:

# Dnf install iperf3

У дистрибутивах Debian / Ubuntu ви можете встановити утиліту iperf3 командою:

sudo apt install iperf3

Якщо даний Linux сервер планується використовувати в якості сервері iperf3, потрібно відкрити порт 5201 в firewalld:

# Firewall-cmd --permanent --add-port = 5201 / tcp
# Firewall-cmd --permanent --add-port = 5201 / udp
# Firewall-cmd --reload

Вимірювання швидкості мережі за допомогою Iperf

Розглянемо тепер кілька прикладів використання iperf для тестування пропускної здатності мережі. У цьому прикладі ми будемо використовувати сервер з CentOS як сервер iperf. Запустимо утиліту iperf в серверному режимі:

# Iperf3 -s

Сервер iperf запущений, він очікує з'єднання на порту TCP / 5201.

Server listening on 5201
важливо. Аргументи утиліти iperf чутливі до регістру!

Можна запустити iperf сервер з великим розміром TCP вікна і на іншому порту:

# Iperf3 -s -w 32768 -p 5203

-w 32768 - задамо розмір вікна TCP в 32 KB (за замовчуванням близько 8 КБ)

-p 5203 - порт, на якому чекає підключення iperf (нагадую, що iperf2 за замовчуванням слухає на порту 5001.  

Як клієнт iperf я використовую комп'ютер з Windows 10. Запустіть командний рядок і перейдіть в каталог з виконуваним файлом iperf:

cd c: \ tools \ iperf

Щоб запустити перевірку мережі з боку клієнта, вкажіть адресу (ім'я) сервера iperf:

iperf3.exe -c 192.168.1.202

Якщо ви запустили сервер iperf зі збільшеним розміром TCP вікна, ви можете використовувати наступну команду для отримання максимального навантаження на мережу:

iperf3.exe -c 192.168.1.202 -P 8 -t 30 -w 32768

  • -c168.1.202 - IP адреса сервера iperf;
  • -w 32768 - збільшуємо розмір TCP вікна;
  • -t 30 - час в секундах, протягом якого виконується тестування (за замовчуванням 10 секунд);
  • -P 8 - число паралельних потоків (підключень), використовується для отримання максимального навантаження на канал.

У нашому прикладі тестування тривало 30 секунд. У підсумковому звіті нас цікавить значення стовпця Bandwidth в останнього рядка [SUM]. У нашому випадку середня пропускна здатність мережі між двома вузлами - 79,7 Мбіт / с. Було передано 285 Мб даних (стовпець Transfer).

За допомогою аргументу -f можна змінити формат відображення швидкості передачі (біти, кілобітах, мегабайти). За допомогою опції -i можна вказати інтервал, через який потрібно відображати проміжні результати. Це зручно при тривалих тестах (кілька хвилин, годин).

Можна запустити iperf в зворотному режимі (сервер відправляє дані, а клієнт бере), для цього на клієнті вказується опція -R.

За замовчуванням утиліта генерує TCP трафік, якщо вам потрібно перевірити швидкість мережі для UDP пакетів, необхідно використовувати ключ -u (Сервер при цьому запускається командою: iperf3 -s -u).

Якщо вам потрібно перевірити ваш інтернет-канал (надається провайдером), можна скористатися одним з публічних iperf серверів (список доступний тут):

iperf3 -c iperf.it-north.net

Якщо потрібно оцінити пропускну здатність мережі в обох напрямках (в дуплексом режимі), додатково на клієнті потрібно вказати опцію -d:

iperf3.exe -c IP -P 8 -t 30 -w 32768 -d

Під час виконання тесту сеті за допомогою iperf ви можете стежити за навантаженням на мережевий інтервейс комп'ютера через Task Manager.

Важливо відзначити, що при тестуванні Iperf використовуємо всю доступну пропускну здатність каналу зв'язку між клієнтом і сервером, що може негативно вплинути на продуктивні додатки і користувачів.

Повний список опцій утиліти iperf можна отримати так:

iperf3 -help

Iperf - проста і зручна мережева утиліта, яка допоможе вам виміряти продуктивність мережевого підключення і максимальну швидкість передачі даних між двома пристроями.