Как использовать iperf3 для тестирования скорости сети между серверами
iperf3 — это бесплатная кроссплатформенная утилита с открытым исходным кодом для измерения пропускной способности сети в реальном времени. Она помогает проверить максимальную достижимую скорость канала в IP-сетях (поддерживает IPv4 и IPv6) и является одним из самых удобных инструментов для диагностики сети.
С помощью iperf3 можно настраивать параметры времени, буферов и протоколов (TCP, UDP, SCTP), что делает его полезным не только для диагностики, но и для тюнинга сетевых соединений.
Установка iperf3
На большинстве дистрибутивов Linux iperf3 есть в стандартных репозиториях:
# Ubuntu/Debian
sudo apt install iperf3 -y
# CentOS/RHEL
sudo yum install iperf3 -y
Основные режимы работы
iperf3
работает по модели клиент–сервер.
Один хост запускается в режиме сервера:
iperf3 -s
Другой — в режиме клиента, указывая IP сервера:
iperf3 -c 192.168.1.10
Пример вывода
$ iperf3 -c 192.168.10.1
Connecting to host 192.168.10.1, port 5201
[ 5] local 192.168.10.2 port 50234 connected to 192.168.10.1 port 5201
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-1.00 sec 112 MBytes 940 Mbits/sec
[ 5] 1.00-2.00 sec 113 MBytes 946 Mbits/sec
[ 5] 2.00-3.00 sec 113 MBytes 947 Mbits/sec
[ 5] 3.00-4.00 sec 112 MBytes 941 Mbits/sec
[ 5] 4.00-5.00 sec 113 MBytes 945 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-5.00 sec 564 MBytes 945 Mbits/sec sender
[ 5] 0.00-5.00 sec 563 MBytes 944 Mbits/sec receiver
В отчёте видно:
- Interval — время теста.
- Transfer — объём переданных данных.
- Bandwidth — пропускная способность канала.
Расширенные возможности
Тестирование UDP:
iperf3 -c 192.168.10.1 -u -b 100M
Ключ -u
включает UDP, -b
задаёт целевую скорость.
Обратный тест (сервер → клиент):
iperf3 -c 192.168.10.1 -R
Двусторонний тест:
iperf3 -c 192.168.10.1 -d
Параллельные потоки (например, 4):
iperf3 -c 192.168.10.1 -P 4
Задаём размер TCP-окна:
iperf3 -c 192.168.10.1 -w 500K
Новые возможности iperf3
Изначально iPerf был разработан в рамках проекта NLANR/DAST. Современная версия — iperf3 — поддерживается и развивается организацией ESnet / Lawrence Berkeley National Laboratory. Программа распространяется под лицензией BSD (3-clause) и продолжает активно обновляться.
С каждым релизом появляются новые функции, расширяющие возможности тестирования сети. Вот некоторые из последних добавленных фич:
- Игнорирование TCP slowstart (
-O
) — позволяет пропустить первые секунды теста, когда соединение находится в фазе медленного старта, и получить более честные результаты. - Установка целевой пропускной способности (
-b
) — можно задавать лимит скорости как для UDP, так и для TCP-тестов (например,-b 100M
). - Задание метки потока IPv6 (
-L
) — полезно для тестов в IPv6-сетях, где требуется работать с метками потоков. - Выбор алгоритма управления перегрузкой (
-C
) — можно указывать конкретный TCP congestion control (например,cubic
,reno
,bbr
). - Поддержка SCTP (
--sctp
) — позволяет использовать протокол SCTP вместо TCP. - Вывод в формате JSON (
-J
) — удобен для парсинга результатов и интеграции с системами мониторинга. - Тест чтения с диска:
- сервер:
iperf3 -s
- клиент:
iperf3 -c testhost -i 1 -F filename
- сервер:
- Тест записи на диск:
- сервер:
iperf3 -s -F filename
- клиент:
iperf3 -c testhost -i 1
- сервер:
Итоги
iperf3
— мощный инструмент для диагностики и оптимизации сетей. Он помогает измерить:
- пропускную способность канала;
- потери пакетов;
- джиттер;
- стабильность соединения.
Перед оптимизацией параметров сети всегда полезно провести замеры с помощью iperf3.
Настроить мониторинг за 30 секунд
Надежные оповещения о даунтаймах. Без ложных срабатываний