Skip to main content

Інструкція користувача

Тестування пропускної здатності локального з'єднання за допомогою iperf

Iperf3 це кросплатформенна консольна клієнт-серверна програма — генератор трафіку TCP і UDP для тестування пропускної здатності мережі. Вона дозволяє легко виміряти максимальну пропускну здатність мережі між сервером і клієнтом і виконувати тестування навантаження на мережеве з'єднання.

Ви можете завантажити iperf3 з вебсайту https://iperf.fr/iperf-download. Версії утиліти доступні для різних операційних систем (Windows, macOS, Ubuntu, Debian, Mint, Fedora, Red Hat, CentOS, openSUSE, Arch Linux, FreeBSD).

Для мобільних пристроїв під управлінням Android можна використовувати додаток Magic iPerf including iPerf3.

Для виконання тестування програма повинна бути запущена на двох пристроях (це можуть бути комп'ютери, смартфони або планшети). Один з них буде виступати в ролі сервера, а інший як клієнт. Дані будуть передаватися між ними для вимірювання пропускної здатності з'єднання.

Важливо

Для підвищення точності вимірювань швидкості передачі даних в локальній мережі ми рекомендуємо наступне:

— При проведенні тестів відключайте всі пристрої від маршрутизатора, залишивши тільки два хости, які братимуть участь в тесті.

— Перед тестуванням визначте локальну IP-адресу пристрою, який буде виконувати роль сервера (це можна зробити в вебінтерфейсs на сторінці Списки клієнтів).

— Перед тестуванням перевірте швидкість фізичного каналу в налаштуваннях маршрутизатора (для клієнтів Wi-Fi на сторінці Списки клієнтів , а для дротових клієнтів на сторінці Системний монітор). З'єднання повинно відповідати максимально можливим швидкостям каналу. Наприклад, якщо пристрій підключено через мережевий кабель до гігабітного роутера, потрібно використовувати 4-парний кабель (8 жил) категорії 5e або вище, з'єднання має бути 1G/FDX (1 Гбіт/с, повний дуплекс). У моделях нижче класом воно повинно бути 100M/FDX (100 Мбіт/с, повний дуплекс). Якщо швидкість каналу нижче або ви бачите режим HDX (напівдуплекс), перевірте патч-корд (кабель Ethernet, кручена пара) на відповідність стандарту, замініть його, а також загляньте в налаштування мережевого адаптера (щоб подивитися, чи не встановлений режим обмеження швидкості вручну).

— Не використовуйте пріоритезацію трафіку. Якщо використовується пріоритезація трафіку, апаратний прискорювач (ppe hardware; hwnat) вимикається, оскільки прискорювач не може працювати з пріоритезованим трафіком. При вимкненому прискорювачі швидкість може знизитися. Для пристроїв, що використовуються при тестуванні, на сторінці Списки клієнтів, у полі Пріоритет трафіку, встановіть значення Нормальний (за замовчуванням).

— На хостах, які беруть участь в тестуванні, закрийте всі запущені користувацькі програми і додатки, які передають дані по мережі.

- Тимчасово вимкніть брандмауер на хостах під час тестування, якщо він увімкнений, або дозвольте трафік через порти, які використовуються iperf3 у своїх налаштуваннях.

— При тестуванні з Wi-Fi пристроями такий пристрій повинен розташовуватися біля роутера в прямій видимості, без перешкод, на відстані не більше 2 метрів.

Проведіть тест кілька разів. За замовчуванням iperf3 передає трафік з клієнта на сервер, тобто вимірює швидкість висхідного потоку. Також запустіть тест швидкості від сервера до клієнта за допомогою ключа -R (вмикає зворотний режим) на клієнті.

При вимірюванні пропускної здатності з'єднання між двома пристроями, підключених до маршрутизатора з різною швидкістю, фактичні отримані значення швидкості будуть обмежені самим повільним з'єднанням. Наприклад, якщо один хост підключений зі швидкістю 1 Гбіт/с, а інший - зі швидкістю 100 Мбіт/с, то при тестуванні пропускної здатності швидкість не перевищить 100 Мбіт/

Приклад 1. Припустимо, вам потрібно з'ясувати пропускну здатність локальної мережі між двома комп'ютерами, підключеними до Keenetic гігабітного роутера через 4-парний патч-корд. У нашому випадку комп'ютери підключаються до портів 1 і 3.

iperf-00-en.png

На комп'ютері, який буде виконувати роль сервера, у командному рядку Windows перейдіть до каталогу, де знаходиться виконуваний файл iperf, і виконайте команду:

iperf3 -s

Якщо брандмауер Windows увімкнений на вашому комп'ютері, при першому запуску програми з'явиться вікно Оповіщення про безпеку Windows . Натисніть кнопку Дозволити доступ для відкриття порту, на якому буде працювати додаток iperf3.

iperf-fw-win-en.png
iperf-01-en.png

Застереження

Не закривайте вікно із запущеним сервером.

На комп'ютері, який виступає в ролі клієнта, виконайте наступну команду, щоб почати тестування:

iperf3 -c <server_address_iperf3>

Наприклад:

iperf3 -c 192.168.1.143

Протягом 10 секунд між цими хостами буде здійснюватися обмін трафіком, після чого з'єднання буде припинено і відобразяться результати тестування. У нашому прикладі результатом вимірювання пропускної здатності для локального гігабітного з'єднання було 949 Мбіт/с. В даному випадку це значення є фактичною швидкістю з'єднання на з'єднання 1 Гбіт/с.

iperf-02-en.png

Застереження

За замовчуванням програма iperf3 передає трафік з клієнта на сервер, використовуючи TCP протокол, і виконує тестування протягом 10 секунд без обмеження максимальної швидкості.

При вимірюванні пропускної здатності локальної мережі через роутер з 100 Мбіт/с портами, фактична швидкість була 95.1 Мбіт/с.

iperf-03-en.png

Приклад 2. Давайте подивимося на вимірювання фактичної швидкості з'єднання ноутбука, підключеного до маршрутизатора Keenetic через Wi-Fi. У нашому прикладі ноутбук підключається до роутера з канальною швидкістю 135 Мбіт/с.

win-wifi-adapter-en.png

На комп'ютері, який підключений до роутера по кабелю і буде виступати в якості сервера (в нашому прикладі з IP-адресою 192.168.1.143), виконайте в командному рядку операційної системи наступну команду:

iperf3 -s

На ноутбуці, що виступає в ролі клієнта, виконайте наступну команду, щоб почати тестування:

iperf3 -c <server_address_iperf3> -R

Ви побачите результат цієї команди. У нашому прикладі результат вимірювання пропускної здатності для локального з'єднання Wi-Fi був приблизно 47 Мбіт/с (при канальній швидкості 135 Мбіт/с). Це фактична(реальна) швидкість з'єднання.

iperf-04-en.png

Застереження

При тестуванні бездротового з'єднання рекомендується увімкнути Reverse Mode для перевірки вхідної швидкості на клієнті (в цьому випадку сервер передає дані, а клієнт їх отримує). Додайте до команди ключ -R. При тестуванні Wi-Fi з'єднання можна помітити, що отримані значення швидкості істотно відрізняються, це нормально і обумовлено характером передачі даних в мережах Wi-Fi.

Приклад 3. Розглянемо вимірювання фактичної швидкості з'єднання на смартфоні/планшеті, підключеному до маршрутизатора Keenetic через Wi-Fi. У нашому прикладі смартфон підключається до роутера з канальною швидкістю 200 Мбіт/с.

mob-client-lists-en.png

На комп'ютері, який буде виступати в якості сервера (в нашому прикладі з IP-адресою 192.168.1.143), виконайте в командному рядку операційної системи наступну команду:

iperf3 -s

На смартфоні Android, який виступає в якості клієнта, встановіть додаток Magic iPerf, включаючи iPerf3. Запустіть його і в лівому верхньому кутку екрану встановіть перемикач в позицію iPerf3.

Використовуйте таку команду:

 -c <server_address_iperf3> -R

Почніть тестування, перемістивши перемикач в положення Started в правому верхньому куті екрану.

magic-iperf-01-en.png

Ви побачите результат виконання цієї команди. У нашому прикладі виміряна пропускна здатність локального Wi-Fi з'єднання була приблизно 97 Мбіт/с (при канальній швидкості 200 Мбіт/с). Це фактична(реальна) швидкість з'єднання Wi-Fi клієнта.

magic-iperf-02-en.png

Приклад 4. Давайте виміряємо фактичну швидкість з'єднання на смартфоні/планшеті, підключеному до маршрутизатора Keenetic через Wi-Fi. У нашому прикладі смартфон підключений до роутера з канальною швидкістю 200 Мбіт/с.

mob-client-lists-en.png

Але роутер Keenetic сам буде виконувати роль сервера (його локальна IP-адреса є 192.168.1.1).

Підказка

iрerf пакет присутній в операційній системі маршрутизатора KeeneticOS якщо встановлено компонент Підтримка Open Package.

Підключіться до інтерфейсу командного рядка (CLI) маршрутизатора та виконайте команду для запуску iperf3 сервера:

exec iperf3 -s
iperf-05-en.png

На смартфоні Андроїд, що виступає в якості клієнта, встановіть додаток Magic iPerf, включаючи iPerf3. Запустіть його і в лівому верхньому кутку екрану переведіть перемикач в позицію iPerf3.

Скористайтеся наступною командою:

 -c <server_address_iperf3>

Запустіть тест, перемістивши перемикач в положення Started у правому верхньому куті екрану.

magic-iperf-03-en.png

У нашому прикладі виміряна пропускна здатність локального Wi-Fi з'єднання становила приблизно 94 Мбіт/с (при канальній швидкості 200 Мбіт/с). Це реальна швидкість з'єднання.

Ви також можете побачити результати тестування в терміналі сервера.

iperf-06-en.png
Синтаксис команди iperf3

Давайте подивимося на синтаксис команди iperf3 і основні (найбільш часто використовувані) параметри. Повний і актуальний список опцій ви можете знайти на сайті розробників.

Використання:

iperf3 [-s | -c host] [options]

Поширені параметри для сервера і клієнта:

-p, --port #

номер порту, на якому буде працювати сервер/клієнт (5201 використовується за замовчуванням)

-f, --format [kmgKMG]

формат швидкості в результатах тесту: k (Кбіт), K (Кбайт), m (Мбіт), M (Мбайт), g (Гбіт), G (Гбайт)

-i, --interval #

інтервал між виводами результатів тесту, в секундах

-V, --verbose

більш детальний вивід інформації

-d, --debug

додатковий вивід інформації про налагодження

-v, --version

показати версію

-h, --help

показати допомогу

Основні параметри сервера:

-s, --server

запуск сервера і відображення інформації на екрані

-D, -- daemon

запуск сервера у фоновому режимі, без відображення інформації на екрані; він залишиться запущеним навіть після закриття вікна програми

Основні параметри клієнта:

-c, --client <host>

запуск клієнта і з'єднання з сервером <host>

-u, --udp

Протокол UDP замість TCP

-b, --bandwidth #[KMG][/#]

максимальна швидкість в біт/с (0 - без обмеження); за замовчуванням обмеження швидкості для TCP немає, а для UDP - 1 Мбіт/с (опція /# для передачі даних пакетного режиму)

-t, --time #

час тестування в секундах (за замовчуванням 10 секунд)

-n, --bytes #[KMG]

кількість байтів для передачі (замість ключа -t)

-l, --len #[KMG]

розмір буфера (за замовчуванням 128 КБ для TCP, 8 КБ для UDP)

-P, --parallel #

кількість одночасних потоків клієнта

-R, --reverse

реверсний режим: сервер надсилає трафік, клієнт отримує його.

-4, --version4

використовувати тільки IPv4

-6, --version6

використовувати тільки IPv6

-Z, --zerocopy

метод відправки даних за технологією Zero Copy для зниження навантаження на процесор

-O, --omit N

пропустити перші n секунд (ігнорувати алгоритм TCP slowstart)

--get-server-output

отримати результати з сервера

Ось кілька прикладів використання iperf3 команд з різними параметрами:

Запуск сервера (з налаштуваннями за замовчуванням):

iperf3 -s

Запуск клієнта (з налаштуваннями за замовчуванням):

iperf3 -c 192.168.1.143

У наших прикладах 192.168.1.143 - це IP-адреса сервера iperf3.

Примітка

Сервер може приймати з'єднання лише від одного клієнта одночасно. Якщо сервер зайнятий іншим клієнтом, при спробі запустити тест з'явиться повідомлення про помилку: server is busy running a test. try again later. В цьому випадку потрібно дочекатися, доки сервер стане доступним.

Однак також можливо запускати кілька екземплярів клієнтів та серверів на одному хості. Для цього використовуйте різні порти з ключем -p <port>.

Наприклад, можна відкрити два вікна командного рядка на сервері і запустити наступну команду в одному з них:

iperf3 -s 5005 (server is running on port 5005)

а в іншому вікні:

iperf3 -s -p 5006 (server is running on port 5006)

Тепер на одному клієнті виконайте команду для підключення до сервера, що працює на порту 5005:

iperf3 -c -p 5005 192.168.1.143

а на другому клієнті виконайте команду для підключення до сервера, що працює на порту 5006:

iperf3 -c -p 5006 192.168.1.143

Запуск клієнта з більш детальним виводом:

iperf3 -Vc 192.168.1.143 

iperf3 -c -V 192.168.1.143

За замовчуванням iperf3 працює наступним чином: сервер отримує дані, а клієнт відправляє їх. Щоб перевірити вхідну швидкість на клієнті, потрібно використовувати реверсний режим і додати до команди ключ -R:

iperf3 -c 192.168.1.143 -R

Щоб збільшити тривалість тесту (за замовчуванням 10 секунд), використайте ключ -t <sec>:

iperf3 -c 192.168.1.143 -R -t 60

Інструмент підтримує багатопотоковий режим тестування. Щоб вказати кількість потоків, використайте ключ -P <streams> (у цьому прикладі тестування буде виконано в 2 потоки):

iperf3 -c 192.168.1.143 -R -t 60 -P 2

Під час тестування з налаштуваннями за замовчуванням результати відображаються щосекунди. За допомогою ключа -i <sec> ви можете змінити часовий інтервал для відображення результатів (у цьому прикладі інтервал збільшено до 3 секунд):

iperf3 -c 192.168.1.143 -R -t 60 -P 2 -i 3

Ви також можете вказати обсяг трафіку, який буде передано під час тестування. Для цього скористайтеся ключем -n <bytes>[KMG] замість -t:

iperf3 -c 192.168.1.143 -R -n 500M -P 2 -i 3

За замовчуванням тестування виконується за допомогою протоколу TCP, але також доступна підтримка протоколу UDP. Для його використання скористайтеся ключем -u:

iperf3 -Vc 192.168.1.143 -u -R -t 60

На відміну від TCP, протокол UDP не використовує алгоритми керування доставкою пакетів та швидкістю передачі, і поводиться в мережі інакше. Оскільки UDP не контролює швидкість передачі даних, це має робити програма, яка передає трафік. За замовчуванням максимальна швидкість для UDP-трафіку встановлена на рівні 1 Мбіт/с. Не встановлюйте занадто високу максимальну швидкість для протоколу UDP, оскільки це може перевантажити мережу (ми рекомендуємо встановити цей параметр на 100 Mбіт/с).Ви можете встановити максимальне обмеження швидкості за допомогою ключа -b <bits>[KMG]:

iperf3 -Vc 192.168.1.143 -u -R -t 60 -b 100M

Також зверніть увагу на ключ -l <bytes>, який встановлює довжину пакета. У режимі UDP встановіть цей параметр на значення не більше 1400 байт.

iperf3 -Vc 192.168.1.143 -u -R -t 60 -b 100M -l 1400