Iperf
Iperf3 — кроссплатформенная консольная клиент-серверная программа — генератор TCP, UDP и SCTP трафика для тестирования пропускной способности сети. Написана с нуля и не совместима с предыдущей реализацией, хотя и содержит часть кода предыдущей реализации.
iperf2 | |
---|---|
Тип | тестирование пропускной способности сети |
Разработчики | ESnet / Lawrence Berkeley National Laboratory |
Написана на | C |
Операционная система | Кроссплатформенная |
Первый выпуск | 10 января 2014[1] |
Последняя версия | 2.1.9 (14 марта 2023) |
Состояние | актуальный |
Лицензия | three-clause BSD |
Сайт | sf.net/projects/iperf2/ |
iperf3 | |
---|---|
Тип | тестирование пропускной способности сети |
Написана на | C |
Операционная система | Кроссплатформенная |
Последняя версия | 3.13 (16 февраля 2023) |
Состояние | актуальный |
Лицензия | three-clause BSD |
Сайт | software.es.net/iperf |
Возможности
правитьУтилита позволяет генерировать трафик различного типа для анализа пропускной способности сети. Поддерживается многопоточная работа (в версии 2 посредством запуска на разных портах, в версии 3 — параметром у клиента). По умолчанию тест выполняется в направлении от клиента к серверу. Чтобы проводить двунаправленное тестирование со стороны клиента, необходимо использовать ключ -r (или -d для одновременной передачи пакетов в обоих направлениях) в версии 2 и ключ -R в версии 3.
Базовые параметры
правитьДля тестирования производительности сети в течение 10 секунд: На сервере выполняется команда:
iperf -s
На клиенте:
iperf -c server_host
Применение
правитьПорт по умолчанию для iperf v1/v2 5001, для iperf3 — 5201
iperf
правитьЗапуск сервера в UDP-режиме с выводом результатов раз в секунду, на порту 65005
iperf -u -s -i1 -p 65005
Тестирование UDP c длиной 100 байт со скоростью 20 Кбит/с в течение 180 секунд (имитация VoIP трафика, запускать нужно в обе стороны).
iperf -u -c server_host -l100 -b20k -t180
Передать 10 мегабайт данных на порт 65005
iperf -n 10m -p 65005 -c server_host
Вывод:
[ ID] Interval Transfer Bandwidth [ 3] 0.0- 12.0 sec 10.0 MBytes 6.97 Mbits/sec
iperf3
правитьЗапуск сервера на порту по умолчанию
iperf3 -s
В отличие от оригинального iperf, сервер слушает только tcp-порт, выбор протокола осуществляется клиентом. Получить 2 мегабайта данных с сервера по UDP с установленным лимитом 100 мегабит/сек.
iperf3 -n 2M -c server_host -u -R -b 100M
Вывод на стороне клиента:
Connecting to host server_host, port 5201 Reverse mode, remote host server_host is sending [ 4] local x.x.x.10 port 57976 connected to y.y.y.5 port 5201 [ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams [ 4] 0.00-1.00 sec 1.30 MBytes 10.9 Mbits/sec 1.042 ms 1248/1414 (88%) [ 4] 1.00-1.58 sec 720 KBytes 10.2 Mbits/sec 1.219 ms 820/910 (90%) - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams [ 4] 0.00-1.58 sec 21.6 MBytes 115 Mbits/sec 1.119 ms 2342/2636 (89%) [ 4] Sent 2636 datagrams
То есть, чтобы клиент получил 2 мегабайта, серверу пришлось отправить 21.6 мегабайта данных, потери составили 89 %. При этом сервер не очень точно выдержал лимит скорости передачи, который составил 115 мегабит/сек.