RTFM.WIKI

Ordnung muß sein. Ordnung über alles (18+)

Инструменты пользователя

Инструменты сайта


Боковая панель


Навигация

Линкшэринг

ALARM!

Добавить новую страницу

You are not allowed to add pages
network:iperf


iperf: измерение пропускной способности сети

Установка

Debian/Ubuntu

# apt-get install iperf

Для установки iperf3

# apt-get install iperf3

CentOS 6/7

Утилита доступна в EPEL

# yum install iperf

Для установки iperf3

# yum install iperf3

OS X

brew

brew install iperf

macports :?:

sudo port install iperf

Сайт iperf

https://iperf.fr/iperf-download.php#macos

iOS/Android

Утилита доступна в программе HE.NET Network Tools в AppStore и Google Play

Windows

Java GUI

JPerf (github, sourceforge)

Измеряем попугая

На сайте разработчика утилиты представлен список публичных iperf серверов где можно измерить пропускную способность.

В самом простом случае iperf-клиенту достаточно указать один ключ -c с адресом сервера

iperf -c ping.online.net

По-умолчанию сервер использует порт 5001.

Для указания альтернативного порта используется ключ -p.

TCP тест

С iperf-клиентом всё просто.

Рассмотрим случай, когда у нас есть возможность самостоятельно запустить и сервер и клиент.

Для запуска iperf в режиме сервера используется ключ -s.

На стороне iperf-сервера выполняем комадну iperf -s. Вывод будет приблизительно такой

------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------

Подключаемся с другого хоста к нашему iperf-серверу

iperf -c 192.168.1.77
------------------------------------------------------------
Client connecting to 192.168.1.77, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.13 port 53204 connected with 192.168.1.77 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  31.1 MBytes  26.0 Mbits/sec

На стороне iperf-сервера это будет выглядеть так:

------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local 192.168.1.77 port 5001 connected with 192.168.1.13 port 53204
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.1 sec  31.1 MBytes  25.9 Mbits/sec

UDP тест

При желании можно провести тест по UDP протоколу

Для этого добавляем ключ -u

iperf -s -u

Так выглядит запуск iperf-сервера

------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size:  208 KByte (default)
------------------------------------------------------------

На стороне клиента также следует указать дополнительный ключ -u

iperf -c 192.168.1.77 -u

Так выглядит результат теста

------------------------------------------------------------
Client connecting to 192.168.1.77, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.13 port 46076 connected with 192.168.1.77 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.25 MBytes  1.05 Mbits/sec
[  3] Sent 893 datagrams
[  3] Server Report:
[  3]  0.0-10.0 sec  1.25 MBytes  1.05 Mbits/sec   0.094 ms    0/  893 (0%)

И тут нас убило роялем из кустов. Как же так 1.05 мегабит! Это же медленнее, чем через TCP.

Дело в том, что по-умолчанию для iperf-клиента стоит ограничение в 1 мегабит.

Чтобы указать максимальную пропускную способность используется ключ -b.

Для канала 100 мегабит команда будет выглядеть так

iperf -c 192.168.1.77 -u -b 100m

Для канала 1 гигабит команда будет выглядеть так

iperf -c 192.168.1.77 -u -b 1000m

Результат команды будет такой

------------------------------------------------------------
Client connecting to 192.168.1.77, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.13 port 49672 connected with 192.168.1.77 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  55.4 MBytes  46.5 Mbits/sec
[  3] Sent 39545 datagrams
[  3] Server Report:
[  3]  0.0-10.1 sec  55.4 MBytes  46.1 Mbits/sec   0.728 ms   10/39544 (0.025%)
[  3]  0.0-10.1 sec  1 datagrams received out-of-order

Двунаправленный тест (bidirectional test)

В некоторых случаях необходимо протестировать оба хоста\сервера. Это можно легко сделать с помощью встроенной функции двунаправленного тестирования (ключ -d).

Вывод команды

iperf -c 192.168.1.77 -d

будет такой

------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
------------------------------------------------------------
Client connecting to 192.168.1.77, TCP port 5001
TCP window size:  136 KByte (default)
------------------------------------------------------------
[  5] local 192.168.1.13 port 53208 connected with 192.168.1.77 port 5001
[  4] local 192.168.1.13 port 5001 connected with 192.168.1.77 port 39076
[ ID] Interval       Transfer     Bandwidth
[  5]  0.0-10.1 sec  51.4 MBytes  42.8 Mbits/sec
[  4]  0.0-10.2 sec  18.4 MBytes  15.2 Mbits/sec

На стороне iperf-сервера это будет выглядеть следующим образом

------------------------------------------------------------
Client connecting to 192.168.1.13, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  6] local 192.168.1.77 port 39076 connected with 192.168.1.13 port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.2 sec  51.4 MBytes  42.3 Mbits/sec
[  6]  0.0-10.2 sec  18.4 MBytes  15.1 Mbits/sec

Опции (основные)

Опция Описание
-B Запускает iperf на выбранном интерфейсе или адресе.
-f Изменить формат вывода. Доступные значения - m (Mbits, default), k (Kbits), K (KBytes), and M (MBytes). Пример: -f k выведет результат в килобитах в секунду вместо мегабит в секунду.
-i Выводить отчёт теста на экран каждые N секунд.
-p Указать порт вручную. Если не указано, то используется стандартный 5001.
-t Время в секундах для передачи данных. По-умолчанию 10 секунд.
-V Принудительно использовать IPv6 вместо IPv4.
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies

Discussion

Enter your comment. Wiki syntax is allowed:
 
network/iperf.txt · Последнее изменение: 2017/03/09 23:14 (внешнее изменение)