Разное

Iperf3: Download iPerf3 and original iPerf pre-compiled binaries

17.12.2020

Содержание

iPerf3 — измерение пропускной способности сети

Утилита iPerf3 позволяет измерить максимальную пропускную способность между двумя узлами сети. Может использовать различные параметры тайминга, протоколов, потоков и т.п. Это кроссплатформенная клиент-серверная программа. Бесплатна.

Умеет генерировать трафик различного типа для анализа пропускной способности сети. Поддерживается многопоточная работа через параметры у клиента. По умолчанию тест выполняется в направлении от клиента к серверу. Для обратного тестирования от сервера к клиенту необходимо использовать ключ -R.

Скачать можно здесь:

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

C:\Distr\iperf-3.1.3-win64\iperf-3.1.3-win64>iperf3.exe /?
iperf3: parameter error - must either be a client (-c) or server (-s)

Usage: iperf [-s|-c host] [options]
       iperf [-h|--help] [-v|--version]

Server or Client:
  -p, --port      #         server port to listen on/connect to
  -f, --format    [kmgKMG]  format to report: Kbits, Mbits, KBytes, MBytes
  -i, --interval  #         seconds between periodic bandwidth reports
  -F, --file name           xmit/recv the specified file
  -B, --bind      <host>    bind to a specific interface
  -V, --verbose             more detailed output
  -J, --json                output in JSON format
  --logfile f               send output to a log file
  -d, --debug               emit debugging output
  -v, --version             show version information and quit
  -h, --help                show this message and quit
Server specific:
  -s, --server              run in server mode
  -D, --daemon              run the server as a daemon
  -I, --pidfile file        write PID file
  -1, --one-off             handle one client connection then exit
Client specific:
  -c, --client    <host>    run in client mode, connecting to <host>
  -u, --udp                 use UDP rather than TCP
  -b, --bandwidth #[KMG][/#] target bandwidth in bits/sec (0 for unlimited)
                            (default 1 Mbit/sec for UDP, unlimited for TCP)
                            (optional slash and packet count for burst mode)
  -t, --time      #         time in seconds to transmit for (default 10 secs)
  -n, --bytes     #[KMG]    number of bytes to transmit (instead of -t)
  -k, --blockcount #[KMG]   number of blocks (packets) to transmit (instead of -
t or -n)
  -l, --len       #[KMG]    length of buffer to read or write
                            (default 128 KB for TCP, 8 KB for UDP)
  --cport         <port>    bind to a specific client port (TCP and UDP, default
: ephemeral port)
  -P, --parallel  #         number of parallel client streams to run
  -R, --reverse             run in reverse mode (server sends, client receives)
  -w, --window    #[KMG]    set window size / socket buffer size
  -M, --set-mss   #         set TCP/SCTP maximum segment size (MTU - 40 bytes)
  -N, --no-delay            set TCP/SCTP no delay, disabling Nagle's Algorithm
  -4, --version4            only use IPv4
  -6, --version6            only use IPv6
  -S, --tos N               set the IP 'type of service'
  -Z, --zerocopy            use a 'zero copy' method of sending data
  -O, --omit N              omit the first n seconds
  -T, --title str           prefix every output line with this string
  --get-server-output       get results from server
  --udp-counters-64bit      use 64-bit counters in UDP test packets

[KMG] indicates options that support a K/M/G suffix for kilo-, mega-, or giga-

iperf3 homepage at: http://software.
es.net/iperf/ Report bugs to: https://github.com/esnet/iperf

Пример использования

На сервере запускаем:

iperf3.exe -s

На клиенте запускаем:

iperf3.exe -с 10.10.12.8 -P 5 -R

Где:

  • 10.10.12.8 — IP адрес сервера,
  • -P 5 — пять потоков,
  • -R — обратная передача, от сервера клиенту.

Результат:

Как пользоваться iperf | Losst

Утилита iperf — это генератор сетевого трафика, предназначенный для проверки скорости и пропускной способности сети. Программа кроссплатформена, и распространяется с открытым исходным кодом. Вы можете использовать её для проверки пропускной способности VPS серверов или для настройки и улучшения производительности сети.

Программа состоит из клиентской и серверной части, поэтому для работы вам понадобится как минимум два компьютера, подключённых к сети.

В этой статье мы рассмотрим как установить и как пользоваться iperf. Обратите внимание, что мы будем говорить об последней версии программы iperf3.

Содержание статьи:

Установка iperf

Как я уже сказал, программа кроссплатформенная, поэтому вы можете использовать её как в Windows, так и в Linux. Для установки в Ubuntu или Debian выполните:

sudo apt install iperf3

А для установки iperf в CentOS или Fedora:

sudo dnf install iperf3

В Windows программа ставится немного по другому. Просто скачайте утилиту из официального сайта и распакуйте куда-нибудь. Сразу же после этого вы сможете её использовать.

Синтаксис и опции iperf

Поскольку утилита имеет как серверную часть так и клиентскую, надо рассматривать обе отдельно. Для запуска сервера используется такой синтаксис:

$ iperf3 -s опции

Для запуска клиента используется ключ -c, которому надо передать адрес сервера:

$ iperf3 -c адрес_сервера опции

Теперь давайте рассмотрим общие опции программы:

  • -p, —port — указать порт для сервера или к какому порту надо подключаться;
  • -f, —format — формат выводимых данных, доступны значения: k,m,g,t,K,M,G,T;
  • -i, —interval — интервал времени между выводами результата тестирования;
  • -F, —file — использовать данн

iPerf3 — измерение пропускной способности сети | Лаборатория сисадмина

Утилита iPerf3 позволяет измерить максимальную пропускную способность между двумя узлами сети. Может использовать различные параметры тайминга, протоколов, потоков и т.п. Это кроссплатформенная клиент-серверная программа. Бесплатна.

Умеет генерировать трафик различного типа для анализа пропускной способности сети. Поддерживается многопоточная работа через параметры у клиента. По умолчанию тест выполняется в направлении от клиента к серверу. Для обратного тестирования от сервера к клиенту необходимо использовать ключ -R.

Скачать можно здесь:

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

C:\Distr\iperf-3.1.3-win64\iperf-3.1.3-win64>iperf3.exe /?
iperf3: parameter error — must either be a client (-c) or server (-s)

Usage: iperf [-s|-c host] [options]
iperf [-h|—help] [-v|—version]

Server or Client:
-p, —port

# server port to listen on/connect to
-f, —format [kmgKMG] format to report: Kbits, Mbits, KBytes, MBytes
-i, —interval # seconds between periodic bandwidth reports

-F, —file name xmit/recv the specified file
-B, —bind <host> bind to a specific interface
-V, —verbose more detailed output
-J, —json output in JSON format
—logfile f send output to a log file
-d, —debug emit debugging output
-v, —version show version information and quit
-h, —help show this message and quit
Server specific:
-s, —server run in server mode
-D, —daemon run the server as a daemon
-I, —pidfile file write PID file
-1, —one-off handle one client connection then exit
Client specific:
-c, —client <host> run in client mode, connecting to <host>
-u, —udp use UDP rather than TCP
-b, —bandwidth #[KMG][/#] target bandwidth in bits/sec (0 for unlimited)
(default 1 Mbit/sec for UDP, unlimited for TCP)
(optional slash and packet count for burst mode)
-t, —time # time in seconds to transmit for (default 10 secs)
-n, —bytes #[KMG] number of bytes to transmit (instead of -t)
-k, —blockcount #[KMG] number of blocks (packets) to transmit (instead of —
t or -n)
-l, —len #[KMG] length of buffer to read or write
(default 128 KB for TCP, 8 KB for UDP)
—cport <port> bind to a specific client port (TCP and UDP, default
: ephemeral port)
-P, —parallel # number of parallel client streams to run
-R, —reverse run in reverse mode (server sends, client receives)
-w, —window #[KMG] set window size / socket buffer size
-M, —set-mss # set TCP/SCTP maximum segment size (MTU — 40 bytes)
-N, —no-delay set TCP/SCTP no delay, disabling Nagle’s Algorithm
-4, —version4 only use IPv4
-6, —version6 only use IPv6
-S, —tos N set the IP ‘type of service’
-Z, —zerocopy use a ‘zero copy’ method of sending data
-O, —omit N omit the first n seconds
-T, —title str prefix every output line with this string
—get-server-output get results from server
—udp-counters-64bit use 64-bit counters in UDP test packets

[KMG] indicates options that support a K/M/G suffix for kilo-, mega-, or giga-

iperf3 homepage at: http://software. es.net/iperf/
Report bugs to: https://github.com/esnet/iperf

Пример использования

На сервере запускаем:

iperf3.exe -s

На клиенте запускаем:

iperf3.exe -с 10.10.12.8 -P 5 -R

Где:

  • 10.10.12.8 — IP адрес сервера,
  • -P 5 — пять потоков,
  • -R — обратная передача, от сервера клиенту.

Результат:

Источник:
https://internet-lab.ru/tools_ipref3

Если вам понравилась статья, то ставьте 👍🏻 каналу.
Пишите комментарии, задавайте вопросы, подписывайтесь.

iPerf3 / Консольная утилита для активного измерения пропускной способности IP-сетей

iPerf3 — клиент-серверная C (си) / C++ (glibc / openssl) консольная утилита для активного измерения пропускной способности IP-сетей по протоколам TCP, UDP и SCTP IPv4 и IPv6).

SCTP (Stream Control Transmission Protocol) — протокол передачи данных в компьютерных сетях с управляемым потоком, протокол транспортного уровня появившийся в 2000 году. Протокол работает аналогично протоколам TCP или UDP, но имеет несколько нововведений, таких как многопоточность, защита от DDoS (Distributed Denial of Service) атак, синхронное соединение между хостами по двум и более независимым физическим каналам (multi-homing).

Для проведения тестирования локальной или WiFi-сети необходимо запустить iPerf3 в качестве сервера на одном устройстве в сети (можно запустить в фоновом режиме) и в качестве клиента на другом устройстве. Клиентское устройств генерирует трафик (поддерживается многопоточный режим), а серверная принимает и обрабатывает. Можно задать различные параметры, связанные с используемым сетевым интерфейсом, синхронизацией, буферами и протоколами. Утилита позволяет максимально загрузить канал между клиентом и сервером, что покажет его максимальную пропускную способность (на конкретный момент и для конкретных устройств).

iPerf3 это новая реализация аналогичной утилиты iPerf и частично использует её код, но не имеет с ней обратной совместимости. Для каждого теста утилита выводит информацию о пропускной способности, потерях и других сопутствующих параметрах. Тестирование «по умолчанию» осуществляется по протоколу TCP, если требуется UDP / SCTP то необходимо добавить соответствующую опцию. При необходимости измерения скорости провайдера можно воспользоваться одним из публичных iperf3-серверов, в этом случае используется только клиентская часть утилиты. Работа с утилитой и возможные параметры тестирования подробно расписаны в документации.

Лицензия: Собственная (Three-clause BSD license)

Домашняя страница

iperf3: измеряем скорость сети — 2gusia aka mikemac — LiveJournal

Самый простой способ измерить скорость сети — это скопировать файлы и засечь время. И способ самый правильный в том смысле, что именно для этого сеть в основном и сделана. Но есть недостаток. Если скорость мала (а она почти всегда могла бы быть и повыше) совершенно непонятно где узкое место — железо или софт, диски или провода и т.п. Для тестирования собственно сетевой части есть несколько известных кросс-платформенных (то есть для множества операционных систем — хоть для Windows, хоть для iOS или Android) утилит. Одна из них iperf3 доступна чуть ли ни под любую платформу и, в частности, есть в nas4free из коробки.
Про неё и пост.

NB версия 3 (iperf3) не совместима ни по ключам ни по трафику с более ранними — iperf и iperf2

Чтобы измерить скорость сети, без влияния дисковой подсистемы, производительности процессора и пр., между любыми двумя компьютерами и/или мобильными устройствами нужно на одном запустить iperf3 в режиме сервера

iperf3 -s

А на другом — в режиме клиента, указав IP сервера

iperf3 -с 192.168.1.34

Есть и другие параметры, но этих в локальной сети обычно достаточно.
NB обычно тест следует повторить, поменяв сервер и клиент местами. Далеко не факт, что цифры примерно совпадут.
Давайте запустим, но сначала нам придётся сделать подготовительную работу ведь на Windows iperf3 из коробки нет.

1. На NAS узнаём используемую версию

nas4free ~/ root~$ iperf3 -v
iperf 3.1.4
FreeBSD nas4free.local 11.0-RELEASE-p3 FreeBSD 11.0-RELEASE-p3 #0 r309282M: Tue Nov 29 12:59:15 CET 2016 [email protected]:/usr/obj/nas4free/usr/src/sys/NAS4FREE-amd64 amd64
Optional features available: CPU affinity setting, SCTP, TCP congestion algorithm setting, sendfile / zerocopy

2. Теперь запустим её в режиме сервера — пусть ждёт. Можно и попозже запустить — главное, раньше вызова клиента на другой машине.

iperf3 -s

3. Теперь нужно найти такую же версию для Windows. Настоящий сварщик админ, конечно, скомпилирует из исходников на официальном сайте. Но мы погуглим iperf3 windows и найдём путь попроще. Первым вариантом Гугл даёт французский сайт. Там на выбор раздают версии под множество операционных систем. Свежая на момент написания версия 3.1.3, но я тестил и разницы с 3.1.4 не обнаружил.

4. Грузим под ваш вариант Windows (64 или 32 бит, есть и под Win10). Это zip архив с двумя файлами — утилитой и библиотекой.
Помещаем папку куда-то на жёсткий диск (например — в корень диска С). Папку для краткости я переименовал в C:\iperf3

5. И идём в командную строку Windows

если нажать ENTER и сервер на другом конце запущен (п 2)  — начнётся тестирование

На примере выше имеем 455Мбит/c
Теперь можно оценивать. Сказать по-правде, 455Мбит/c — цифра для гигабитной сети — позорная. Меньше половины возможной. Причём когда будут качаться файлы — скорость будет ещё ниже за счёт вклада дисковой системы с обеих сторон и возможных потерь на сетевые протоколы более высокого уровня.

Если скорость не устраивает — нужно искать в чём дело. Я для начала записал на флешку Live образ nas4free и загрузил с неё свой настольный компьютер.
Результат — 798-812 Мбит/c в зависимости от второстепенных параметров тестирования. Тоже не супер. Но с учётом древнего железа (настольный комп у меня на Core первого поколения), встроенных реалтековских карт и пр. — сойдёт. А вот мой Windows7 просится в настройку 🙁 Обычно такие шалости творят антивирусы. В моём случае вклад вносит ещё и VirtualBox. Но всё это тема для отдельного разговора.

Использование утилиты iperf3 для тестирования скорости канала в Ubuntu

Консольная утилита iperf3 предназначена для того, чтобы измерять пропускную способность сети. Она поддерживает работу как по протоколу TCP, так и по UDP. Для проведения тестирования надо запустить iperf3 как на сервере, так и на клиенте. Клиентская часть будет генерировать трафик, а серверная — принимать и отбрасывать. Сейчас мы рассмотрим применение iperf3 в Ubuntu Linux.

Приложение iperf3 позволяет максимально загрузить канал между вами и сервером, что покажет его максимальную пропускную способность в конкретный момент. Если вы держите VDS-сервер, использование iperf3 позволит вам проверить, насколько заявленные параметры его пропускной способности соответствуют реальным. Если вам нужно просто измерить скорость провайдера, можете использовать публичные iperf3-сервера, которые найдете тут. В таком случае вам понадобится установить и запустить лишь клиентскую часть, а запуск серверной части — опустите.

Установка iperf3

При помощи данной команды можно установить iperf3 в Ubuntu Linux:

sudo apt install iperf3

Как мы уже упоминали, iperf3 надо запустить как на сервере, так и на клиенте. Начнем с серверной.

Запуск серверной версии

Запустите iperf3 на сервере командой:

iperf3 -s

После этого сервер iperf3 начнет слушать порт 5201 на всех сетевых интерфейсах.

Пока идет тестирование, придется держать iperf3 запущенным. Для удобства можно запустить утилиту в качестве демона командой:

iperf3 -s -D

Как уже отмечалось, iperf3 будет слушать все сетевые интерфейсы. Однако можно забиндить его на определенный IP командой:

iperf3 -s -D -B ip.add.re.ss

Запуск клиентской версии

На клиенте iperf3 запускается так:

iperf3 -c <хост>

При выполнении данной команды iperf3 будет инициировать сетевой соединение на указанный адрес хоста (домен либо IP) через порт 5021. Будет начато тестирование.

 

Использование протокола UDP

Утилита iperf3 по умолчанию проводит тестирование по протоколу TCP. Если вам требуется использовать UDP, то следует добавить параметр -u:

На сервере:

iperf3 -s -D -u -B ip.add.re.ss

На клиенте:

iperf3 -u -c <хост>

Более подробную справку по использованию iperf3 вы можете прочесть в мануале при помощи команды man iperf3. Там же содержатся и все дополнительные параметры, которые поддерживает утилита.


Тест канала с помощью iPerf

Вы может проверить ширину канала до виртуального дата-центра с помощью утилиты iPerf. Это клиент-серверная программа, которая тестирует пропускную способность сети. Чтобы использовать, нужно установить iPerf на вашу машину и запустить из консоли команду. Ответом вы получите отчет о скорости передачи данных.

Установка iPerf на LINUX

Установка выполняется с помощью пакетного менеджера вашей ОС. Например, для Ubuntu:


sudo apt-get update
sudo apt-get install iperf3

Или для Centos: yum install iperf3

Тестирование канала

Если вы используйте windows, запустите командную строку cmd с правами администратора. Обратитесь к папке, в которой вы сохранили программу iPerf. Мы сохранили на диске С:, поэтому выполним команду

cd. c:/

Где с:/ — путь к папке с iPerf.

В остальном использование iPerf на Windows и LINUX-машинах не отличается:

Чтобы проверить ширину канала, выполните команду

iperf3 -c iperf. airnode.ru

В консоли можно посмотреть результаты тестирования:

Если при выполнении возникла ошибка:

the server is busy running a test. try again later

Значит порт, к которому вы подключаетесь, уже занят. Попробуйте выполнить тестирование позже, или используйте дополненую команду:

iperf3 -c iperf.airnode.ru -p 5202

Ключ -p 5202 определяет порт, на который будут отправлены запросы.
Доступны порты от 5201(по умолчанию) до 5209.

Вызвать справку и посмотреть другие ключи можно командой iperf3 -h

Загрузить iPerf3 и исходные предварительно скомпилированные двоичные файлы iPerf

iPerf — Загрузить предварительно скомпилированные двоичные файлы iPerf3 и оригинальные iPerf

Содержание:

  1. Скачать iPerf для Windows
  2. Скачать iPerf3 для Android
  3. Загрузить iPerf3 для iPhone / iPad
  4. Скачать iPerf3 для Apple macOS
  5. Загрузить iPerf для Ubuntu / Debian / Mint
  6. Загрузить iPerf для Fedora / Red Hat / CentOS
  7. Скачать iPerf для openSUSE
  8. Загрузить iPerf для Arch Linux
  9. Скачать iPerf для FreeBSD
  10. Сценарий журнала сервера iPerf3
  11. Источник iPerf C ++
  12. Как выполнить более свежую установку Iperf, чем та, которая включена в Ubuntu / Debian / Mint?


Загрузить iPerf3 и исходные предварительно скомпилированные двоичные файлы iPerf

Обратите внимание, что iPerf3 не имеет обратной совместимости с iPerf2.

64-разрядная версия Windows , скомпилированная Вивьен Геант. (Sha256)
  • iPerf 3.1.3 (8 июня 2016 г. — 1,3 МБ для 64-разрядной версии Windows Vista — 64-разрядной версии Windows 10)
  • iPerf 3.1.2 (1 февраля 2016 г. — 1,3 МБ для 64-разрядной версии Windows Vista и 64-разрядной версии Windows 10)
  • iPerf 3.0.12 (8 июня 2016 г. — 1,3 МБ для 64-разрядной версии Windows Vista — 64-разрядной версии Windows 10)
  • iPerf 3.0.11 (9 января 2015 г. — 1,3 МБ для 64-разрядной версии Windows Vista и 64-разрядной версии Windows 10)
  • iPerf 2.0,9 (6 июня 2016 г. — 1,7 МБ для 64-разрядной версии Windows Vista — 64-разрядной версии Windows 10)
  • iPerf 2.0.8b (17 сентября 2015 г. — 1,6 МБ для 64-разрядной версии Windows Vista и 64-разрядной версии Windows 10)

32-разрядная версия Windows , скомпилированная Вивьен Геант. (Sha256)
  • iPerf 3.1.3 (8 июня 2016 г. — 1,3 МБ для Windows XP — Windows 10)
  • iPerf 3.1.2 (1 февраля 2016 г. — 1,3 МБ для Windows XP — Windows 10)
  • iPerf 3.0.12 (8 июня 2016 г. — 1,4 МБ для Windows XP — Windows 10)
  • iPerf 3.0.11 (9 января 2015 г. — 1,3 МБ для Windows XP — Windows 10)
  • iPerf 2.0.9 (6 июня 2016 г. — 1,7 МБ для Windows XP — Windows 10)
  • iPerf 2.0.8b (17 сентября 2015 г. — 1,6 МБ для Windows XP — Windows 10)
  • iPerf 2.0.8 (12 января 2015 г. — 231 КБ для Windows XP — Windows 10), построенный без Cygwin
  • iPerf 2.0.6 (10 марта 2014 г. — 1,6 МБ для Windows XP — Windows 10)
  • iPerf 2.0.5b (8 июля 2010 г. — 1,6 MiB для Windows XP — Windows 10) Исправлены некоторые проблемы с производительностью Cygwin, выполненные Юлиу Рус (Google)
  • iPerf 2.0,5 (8 июля 2010 г. — 1,2 МБ для Windows XP — Windows 10)
  • iPerf 2.0.2 (3 мая 2005 г. — 614 КБ только для Windows 2000 и Windows XP)
  • iPerf 1. 7.0 (13 марта 2003 г. — 84,4 КиБ только для Windows 2000 и Windows XP), построенный без Cygwin
  • iPerf 1.7.0 (13 марта 2003 г. — 316 КБ только для Windows CE)

Приложения универсальной платформы Windows (настольные приложения Windows 10 и мобильные приложения Windows 10):

Android :
  • iPerf3 и iperf2: он.net — Сетевые инструменты (NoveMiBer 2015 от Hurricane Electric — 25 МБ)
  • iPerf3 и iperf2: Magic iPerf (NoveMiBer 2015 от NextDoorDeveloper — 786 КиБ)
  • iPerf2: Aruba Utilities (май 2016 г., разработчик CTOD в Aruba Networks — 1,99 МБ)
  • iPerf2: AirO (март 2015 г., разработчик CTOD в Aruba Networks — 975 КБ)
  • iPerf2: Iperf ext (август 2012 г., автор: Sudhir C Vissa — 1,7 МБ)
  • iPerf2: iPerf для Android (январь 2012 г., MagicAndroidApps.com — 530 Кбайт)

Apple iOS : (iPhone, iPad и iPod touch)

Apple macOS Intel 64 бит : (sha256)

Apple macOS PowerPC : (sha256)

Ubuntu 64 бит / Debian 64 бит / Mint 64 бит (AMD64) Рауль Гуннар Борениус и Роберто ЛуМиБрерас. (Sha256)

32-разрядная версия Ubuntu /32-разрядная версия Debian / 32-разрядная версия Mint (i386) Рауля Гуннара Борениуса и Роберто ЛуМиБрераса. (Sha256)

Ubuntu ARM64 бит / Debian ARM64 Рауль Гуннар Борениус и Роберто ЛуМиБрерас.(Sha256)

Ubuntu ARMhf биты / Debian ARMhf от Рауля Гуннара Борениуса и Роберто ЛуМиБрераса. (Sha256)

Fedora 64 бит / Red Hat 64 бит / CentOS 64 бит (AMD64) от ssahani. (Sha256)

Fedora 32 бит / Red Hat 32 бит / CentOS 32 бит (i686) от ssahani. (Sha256)

openSUSE 64 бит (x86_64) (sha256)

openSUSE 32 бит (i586) (sha256)

Arch Linux 64 бит (x86_64) Тимоти Редалли.(Sha256)

Arch Linux 32 бит (i686) Тимоти Редалли. (Sha256)

Руководство по Linux Установка 64 бит (AMD64) от Vivien Guéant. (Sha256)

FreeBSD, 64 бита (AMD64), Брюс А. Мах. (Sha256)

FreeBSD 32 бита (i386) Брюс А. Мах. (Sha256)

Докер Брент Солсбери

Французский форум для iPerf

Лицензия iPerf: iPerf выпускается под лицензией BSD с тремя пунктами.



Сценарий журнала сервера iPerf3:

iperf3tocsv.py (2,5 КБ) от Кирта Герсена
Журнал для iPerf3: отображение «дата, IP, локальный порт, удаленный порт, продолжительность, протокол, количество_потоков, cookie, отправлено, отправлено_Мбит / с, rcvd, rcvd_mbps, totalsent, totalreceived»

iPerf Источник C ++:

НюМиберы версии

iPerf3 используют (примерно) схему семантического управления версиями, в которой номера версии состоят из трех частей: MAJOR.MINOR.PATCH

Разработчики увеличили:

  • ГЛАВНАЯ версия при внесении несовместимых изменений API.
  • МИНИМАЛЬНАЯ версия при добавлении функциональности обратно совместимым способом.
  • PATCH при исправлении ошибок с обратной совместимостью.


UWP iPerf3 источник:

Источник приложений универсальной платформы Windows iPerf3 для Windows 10 Desktop и Windows 10 Mobile.

UWP iPerf3 разработан Tommy Zhang / Microsoft.

Лицензия UWP iPerf3: UWP iPerf3 выпущен под лицензией BSD с тремя пунктами.



Как выполнить более свежую установку Iperf, чем та, которая включена в Ubuntu / Debian / Mint?

Учебное пособие для дистрибутивов на основе Debian / Ubuntu



Установите Iperf 3.9 через командную строку:

Пакеты устанавливаются вручную с помощью команды dpkg (система управления пакетами Debian). dpkg — это серверная часть для таких команд, как apt и aptitude, которые, в свою очередь, являются серверной частью для приложений установки с графическим интерфейсом, таких как Software Center и Synaptic.

— 64-разрядная версия Ubuntu / 64-разрядная версия Debian / 64-разрядная версия Mint (AMD64) :
  1. sudo apt удалить iperf3 libiperf0
  2. sudo apt установить libsctp1
  3. wget https://iperf. fr/download/ubuntu/libiperf0_3.9-1_amd64.deb
  4. wget https://iperf.fr/download/ubuntu/iperf3_3.9-1_amd64.deb
  5. судо dpkg -i libiperf0_3.9-1_amd64.deb iperf3_3.9-1_amd64.deb
  6. rm libiperf0_3.9-1_amd64.deb iperf3_3.9-1_amd64.deb

— 32 бита Ubuntu / 32 бита Debian / 32 бита Mint (i386) :
  1. sudo apt удалить iperf3 libiperf0
  2. sudo apt установить libsctp1
  3. wget https://iperf.fr/download/ubuntu/libiperf0_3.9-1_i386.deb
  4. wget https://iperf.fr/download/ubuntu/iperf3_3.9-1_i386.deb
  5. судо dpkg -i libiperf0_3.9-1_i386.deb iperf3_3.9-1_i386.deb
  6. rm libiperf0_3.9-1_i386.deb iperf3_3.9-1_i386.deb

— Удалить iPerf:
  • sudo apt удалить iperf3 libiperf0


Установить Iperf 3.1.3 с графической установкой:

  1. Удалите старую версию iperf3, установленную с помощью «Ubuntu Software Center» или «Synaptic».
  2. Загрузите iperf3 и libiperf0
  3. Важно сначала установить libiperf0 , дважды щелкнув файл:
  4. Затем необходимо установить iperf3 , дважды щелкнув файл:

Инструмент измерения пропускной способности сети TCP, UDP и SCTP

iPerf — Инструмент измерения пропускной способности сети TCP, UDP и SCTP

Что такое iPerf / iPerf3?

iPerf3 — это инструмент для активных измерений максимально достижимой полосы пропускания в IP-сетях.Он поддерживает настройку различных параметров, связанных со временем, буферами и протоколами (TCP, UDP, SCTP с IPv4 и IPv6). Для каждого теста он сообщает о пропускной способности, потерях и других параметрах. Это новая реализация, не имеющая общего кода с исходным iPerf и также не имеет обратной совместимости. iPerf изначально был разработан NLANR / DAST. iPerf3 в основном разработан ESnet. / Национальная лаборатория Лоуренса Беркли. Он выпущен под лицензией BSD с тремя пунктами.

Характеристики iPerf

  • TCP и SCTP
    • Измерьте полосу пропускания
    • Сообщает размер MSS / MTU и наблюдаемые размеры чтения.
    • Поддержка размера окна TCP через буферы сокета.
  • UDP
    • Клиент может создавать потоки UDP с заданной пропускной способностью.
    • Измерение потери пакетов
    • Измерение джиттера задержки
    • Поддержка многоадресной рассылки
  • Кроссплатформенность: Windows, Linux, Android, MacOS X, FreeBSD, OpenBSD, NetBSD, VxWorks, Solaris, …
  • Клиент и сервер могут иметь несколько одновременных подключений (опция -P).
  • Сервер обрабатывает несколько подключений, а не завершает работу после одного теста.
  • Может работать в течение указанного времени (опция -t), а не установленного количества данных для передачи (опция -n или -k).
  • Печатать периодические отчеты о промежуточной полосе пропускания, джиттере и потерях с заданными интервалами (опция -i).
  • Запустить сервер как демон (опция -D)
  • Используйте репрезентативные потоки, чтобы проверить, как сжатие канального уровня влияет на доступную пропускную способность (опция -F).
  • Сервер принимает одного клиента одновременно (iPerf3) одновременно несколько клиентов (iPerf2)
  • Новое: игнорировать медленный запуск TCP (опция -O).
  • Новое: Установите целевую полосу пропускания для UDP и (нового) TCP (опция -b).
  • Новинка: установка метки потока IPv6 (опция -L)
  • Новое: Установить алгоритм управления перегрузкой (опция -C)
  • Новое: использовать SCTP вместо TCP (параметр —sctp)
  • Новое: вывод в формате JSON (опция -J).
  • Новое: тест чтения с диска (сервер: iperf3 -s / client: iperf3 -c testhost -i1 -F filename)
  • Новое: тесты записи на диск (сервер: iperf3 -s -F имя_файла / клиент: iperf3 -c testhost -i1)


Информация об IP (на вашем терминале)

  • IP-протокол по умолчанию: IPv4
  • Ваш общедоступный IPv4-адрес: 217. 118.93.85 (обратный DNS: 217.118.93.85 )
  • Ваш общедоступный IPv6-адрес: У вас нет подключения к IPv6 (обратный DNS: н / д )


Список рассылки

Для отправки сообщения всем участникам списка необходимо подписаться на Iperf-users.

Чтобы увидеть коллекцию предыдущих сообщений в списке, посетите архив пользователей Iperf.



Отчет об ошибке для iPerf3

Перед отправкой отчета об ошибке попробуйте проверить последнюю версию кода и убедитесь, что она еще не исправлена.Затем отправьте сообщение в трекер проблем iPerf3 на GitHub: https://github.com/esnet/iperf/issues

.

Известные проблемы

Следующие ниже проблемы являются известными известными проблемами, которые, вероятно, представляют интерес для значительной части пользователей или имеют большое влияние на некоторых пользователей, и по которым проблемы уже были зарегистрированы в системе отслеживания проблем. Эти проблемы либо открыты (что указывает на отсутствие решения в настоящее время), либо закрыты с пометкой, что в настоящее время не предпринимается никаких дальнейших попыток решить проблему:

  • Производительность UDP: были замечены некоторые проблемы с iperf3 на испытательном стенде ESnet 100G при высоких скоростях UDP (выше 10 Гбит / с).Симптомом является то, что при любом конкретном запуске iperf3 получатель сообщает о скорости потери около 20%, независимо от параметра -b, используемого на стороне клиента. Эта проблема не связана с iperf3 и может быть связана с размещением процесса iperf3 на ЦП и его отношением к входящей сетевой карте. В некоторых случаях эта проблема может быть уменьшена путем соответствующего использования параметра соответствия ЦП (« -A »). (Ошибка №55)
  • .
  • Интервальные отчеты в сетях с высокими потерями: в соответствии с текущей реализацией iperf3 команда записи отправителя блокируется до тех пор, пока не будет записан весь блок.Это означает, что отправка полного блока может занять несколько секунд, если в сети высокие потери, а интервальные отчеты будут иметь сильно различающиеся интервалы времени. Решение обсуждается, но пока можно попробовать использовать небольшой размер блока, например « -l 4K ». (Ошибка № 125, исправление будет выпущено в iperf 3.1)
  • Флаг « -Z » иногда приводит к зависанию клиента iperf3 на OSX. (Ошибка № 129)
  • .
  • При указании размера буфера TCP с помощью флага «-w» в Linux ядро ​​Linux автоматически удваивает переданное значение, чтобы компенсировать накладные расходы.(Это можно увидеть с помощью флага iperf3 —debug.) Однако CWND фактически не увеличивается до удвоенного значения, а только примерно до 75% от удвоенного значения. Некоторая часть этого поведения задокументирована на странице руководства tcp (7). (Выпуск № 145)
  • .


Отчет об ошибке для iPerf2

Лучший способ получить помощь по iPerf2 — это посетить его форум https://sourceforge.net/p/iperf2/discussion/



Обновление сайта iperf.fr

Чтобы обновить этот сайт, сообщите об этом на vivien16 @ gueant.org, и мы постараемся исправить их быстро.



Код Авторы

Основными авторами iPerf3 являются (в алфавитном порядке): Джон Дуган, Сет Эллиотт, Брюс А. Мах, Джефф Посканзер, Каустубх Прабху. Дополнительные коды предоставлены (также в алфавитном порядке): Марк Эшли, Аарон Браун, Эней Джейсл, Сьюзант Сахани, Брюс Симпсон, Брайан Тирни.

iPerf3 содержит оригинальный код iPerf2. Авторы iPerf2 (в алфавитном порядке): Джон Дуган, Джон Эстабрук, Джим Фербюзон, Эндрю Галлатин, Марк Гейтс, Кевин Гиббс, Стивен Хеммингер, Натан Джонс, Фенг Цин, Геррит Ренкер, Аджай Тирумала, Алекс Варшавски.

Благодарности iPerf1: Спасибо Марку Гейтсу (NLANR), Алексу Варшавски (NLANR) и Джастину Питчу (Вашингтонский университет) кто отвечал за выпуск Iperf 1.1.x. За iPerf 1.7 мы хотели бы поблагодарить Билла Червени (Internet2), Майкла Ламберта (PSC), Дейла Финкельсона (UNL). и Мэтью Зекаускас (Internet2) за помощь в получении доступа к сетям / машинам IPv6. Особая благодарность Мэтью Зекаускасу (Internet2) за помощь в реализации FreeBSD. Также спасибо Kraemer Oliver (Sony) за независимую реализацию IPv6. версия Iperf, которая предоставила полезное сравнение для тестирования наших функций.

Спасибо ESnet за переделку iperf с нуля. iPerf3 — убийственная программа.

Спасибо для хостинга iPerf.fr.

Пользовательская документация

iPerf3 и iPerf2

iPerf — Пользовательская документация iPerf3 и iPerf2

Содержание:

  1. Изменение между iPerf 2.0, iPerf 3.0 и iPerf 3.1
  2. Документация пользователя iPerf 3
  3. Изменение между iPerf 2.0.6, iPerf 2.0.7 и iPerf 2.0.8
  4. Пользовательская документация iPerf 2


Переход между iPerf 2.0, iPerf 3.0 и iPerf 3.1

  • Функции iPerf2, которые в настоящее время поддерживаются iPerf3:
    • Тесты TCP и UDP
    • Установить порт (-p)
    • Установка опций TCP: без задержки, MSS и т. Д.
    • Установка пропускной способности UDP (-b)
    • Установка размера буфера сокета (-w)
    • Интервалы отчетности (-i)
    • Настройка буфера iPerf (-l)
    • Привязать к определенным интерфейсам (-B)
    • Тесты IPv6 (-6)
    • Количество байтов для передачи (-n)
    • Продолжительность теста (-t)
    • Параллельные потоки (-P)
    • Установка битовых векторов DSCP / TOS (-S)
    • Изменить формат вывода числа (-f)
  • Новые функции iPerf 3. 0:
    • Динамический сервер (обмен параметрами клиент / сервер) — большинство параметров сервера из iPerf2 теперь могут быть динамически установлены клиентом
    • Обмен результатами клиент / сервер
    • Сервер iPerf3 одновременно принимает одного клиента (несколько клиентов одновременно для iPerf2)
    • iPerf API (libiperf) — обеспечивает простой способ использования, настройки и расширения функциональности iPerf
    • -R, Обратный тестовый режим — сервер отправляет, клиент получает
    • -O, —omit N: пропустить первые n секунд (чтобы игнорировать медленный запуск TCP)
    • -b, —bandwidth n [KM] для TCP (только UDP для IPERF 2): установить целевую полосу пропускания равной n бит / сек (по умолчанию 1 Мбит / сек для UDP, неограниченно для TCP).
    • -V, —verbose: более подробный вывод, чем до
    • -J, —json: вывод в формате JSON
    • -Z, —zerocopy: использовать метод отправки данных sendfile () с нулевой копией. Это использует гораздо меньше ЦП.
    • -T, —title str: префикс каждой выходной строки этой строкой
    • -F, —file name: xmit / recv указанный файл
    • -A, —affinity n / n, m: установить соответствие ЦП (ядра нумеруются от 0 — только для Linux и FreeBSD)
    • -k, —blockcount # [KMG]: количество блоков (пакетов) для передачи (вместо -t или -n)
    • -4, —version4: использовать только IPv4
    • -6, —version6: использовать только IPv6
    • -L, —flowlabel: установить метку потока IPv6 (только Linux)
    • -C, —linux-congestion: установить алгоритм управления перегрузкой (только Linux и FreeBSD) (-Z в iPerf2)
    • -d, —debug: выдать отладочную информацию.В первую очередь (возможно, исключительно) для разработчиков.
    • -s, —server: iPerf2 может обрабатывать несколько клиентских запросов. iPerf3 разрешает только одно соединение iperf за раз.
  • Новые функции iPerf 3. 1:
    • -I, —pidfile file записать файл с идентификатором процесса, что наиболее полезно при работе в качестве демона.
    • —cport: укажите порт на стороне клиента.
    • —sctp использовать SCTP, а не TCP (Linux, FreeBSD и Solaris).
    • —udp-counters-64bit: Поддержка очень длительных тестов UDP, которые могут вызвать переполнение счетчика
    • —logfile file: отправить вывод в файл журнала.
  • iPerf2 Функции, не поддерживаемые iPerf3:
    • Двунаправленное тестирование (-d / -r)
    • Данные передаются со стандартного ввода (-I)
    • TTL: время жизни, для многоадресной рассылки (-T)
    • Исключить C (соединение) D (данные) M (многоадресная передача) S (настройки) V (сервер) отчеты (-x)
    • Отчет в виде значений, разделенных запятыми (-y)
    • Режим совместимости позволяет использовать со старой версией iPerf (-C)


iPerf 3 Пользовательская документация

ОБЩИЕ ОПЦИИ
Параметр командной строки Описание
-p , —port n Порт сервера для прослушивания сервера и подключения клиента. к.Это должно быть одинаково как на клиенте, так и на сервере. По умолчанию 5201.
—cport n Возможность указать порт на стороне клиента. (новое в iPerf 3.1)
-f , —format [kmKM] Буква, определяющая формат для печати чисел пропускной способности. Поддерживаемые форматы:
 'k' = Кбит / сек 'K' = Кбайт / сек
'm' = Мбит / с 'M' = МБит / с 
Адаптивные форматы выбирают между килограммами и мега- в зависимости от ситуации.
-i , -интервал n Устанавливает интервал времени в секундах между периодической полосой пропускания, джиттером, и отчеты о потерях. Если ненулевое значение, отчет создается каждые интервала секунды полосы пропускания с момента последнего отчета. Если ноль, нет периодических отчеты распечатываются. По умолчанию — ноль.
-F , — имя файла на стороне клиента: чтение из файла и запись в сеть вместо использования случайных данных;
на стороне сервера: читает из сети и записывает в файл, а не выбрасывает данные.
-A , —affinity n / n, m-F Установите соответствие ЦП, если возможно (только для Linux и FreeBSD). Как на клиенте, так и на сервере вы можете установить локальную привязку с помощью используя форму n этого аргумента (где n — номер процессора). Кроме того, на стороне клиента вы можете переопределить серверный сродство только к этому одному тесту, используя форму аргумента n, m. Обратите внимание, что при использовании этой функции процесс будет привязан только к к одному ЦП (в отличие от набора, содержащего потенциально несколько ЦП).
-B , —bind хост Привязка к хосту , одному из адресов этого компьютера. Для клиента это устанавливает исходящий интерфейс. Для сервера это устанавливает входящие интерфейс. Это полезно только на многосетевых хостах, у которых есть несколько сетевые интерфейсы.
-V , —verbose дает более подробный вывод
-J , —json вывод в формате JSON
—logfile файл отправить вывод в файл журнала.(новое в iPerf 3.1)
—d , —debug выводит отладочную информацию. В первую очередь (возможно, исключительно) для разработчиков.
-v , —version Показать информацию о версии и выйти.
-h , —help Покажите краткую справку и закройте.
ОПЦИИ ДЛЯ СЕРВЕРА
Параметр командной строки Описание
-s , -сервер Запустите iPerf в режиме сервера. (Это позволит одновременно подключаться только к одному iperf)
-D , —daemon Запустить сервер в фоновом режиме как демон.
-I , —pidfile файл записывает файл с идентификатором процесса, что наиболее полезно при работе в качестве демона. (новое в iPerf 3.1)
ОПЦИИ ДЛЯ КЛИЕНТА
Параметр командной строки Описание
-c , —client host Запустите iPerf в режиме клиента, подключившись к серверу iPerf, работающему на хосте , .
—sctp Используйте SCTP вместо TCP (Linux, FreeBSD и Solaris). (новое в iPerf 3.1)
-u , —udp Используйте UDP вместо TCP. См. Также параметр -b.
-b , — ширина полосы n [км] Установите целевую полосу пропускания на n бит / сек (по умолчанию 1 Мбит / сек для UDP, неограниченно для TCP). Если есть несколько потоков (флаг -P), ограничение полосы пропускания применяется отдельно к каждому потоку.Вы также можете добавить ’/’ и число в спецификатор пропускной способности. Это называется «пакетным режимом». Он будет отправлять заданное количество пакетов без паузы, даже если это временно превышает указанный предел пропускной способности.
-t , —time n Время в секундах для передачи. iPerf обычно работает, многократно отправляя массив из len байт в течение времени секунд. По умолчанию 10 секунд.См. Также параметры -l, -k и -n.
-n , —num n [км] Количество буферов для передачи. Обычно iPerf отправляет 10 секунд. Параметр -n отменяет это и отправляет массив из len байт число раз, независимо от того, сколько времени это займет. См. Также параметры -l, -k и -t.
-k , —blockcount n [км] Количество блоков (пакетов) для передачи.(вместо -t или -n) См. Также параметры -t, -l и -n.
-l , -длина n [км] Длина буферов для чтения или записи. iPerf работает, написав массив из len байт несколько раз. По умолчанию 128 КБ для TCP, 8 КБ для UDP. См. Также параметры -n, -k и -t.
-P , —параллельно n Количество одновременных подключений к серверу.По умолчанию 1.
-R , —reverse Работа в обратном режиме (сервер отправляет, клиент получает).
-w , —window n [км] Устанавливает размер буфера сокета на указанное значение. Для TCP это устанавливает размер окна TCP. (это отправляется на сервер и используется также на этой стороне)
-M , —set-mss n Попытка установить максимальный размер сегмента TCP (MSS).MSS обычно представляет собой MTU — 40 байт для заголовка TCP / IP. Для Ethernet MSS составляет 1460 байт (MTU 1500 байт).
-N , — без задержки Установите параметр TCP без задержки, отключив алгоритм Нэгла. Обычно это отключено только для интерактивных приложений, таких как telnet.
-4 , —version4 использует только IPv4.
-6 , —version4 использует только IPv6.
-S , —tos n Тип обслуживания исходящих пакетов. (Многие маршрутизаторы игнорируют TOS поле.) Вы можете указать значение в шестнадцатеричном виде с префиксом ‘0x’, в восьмеричном с помощью префикс ‘0’ или в десятичном формате. Например, ‘0x10’ шестнадцатеричный = ‘020’ восьмеричный = ’16’ десятичный. Номера TOS, указанные в RFC 1349:
 IPTOS_LOWDELAY минимизировать задержку 0x10
IPTOS_THROUGHPUT увеличить пропускную способность 0x08
IPTOS_RELIABILITY увеличить надежность 0x04
IPTOS_LOWCOST минимизировать стоимость 0x02 
-L , —flowlabel n Установите метку потока IPv6 (в настоящее время поддерживается только в Linux).
-Z , -zerocopy Используйте метод «нулевой копии» для отправки данных, такой как sendfile (2), вместо обычного write (2). Это использует гораздо меньше ЦП.
-O , —omit n Пропустите первые n секунд теста, чтобы пропустить период медленного запуска TCP TCP.
-T, —title str Префикс каждой выходной строки этой строкой.
-C , —linux-congestion algo Установите алгоритм управления перегрузкой (только Linux для iPerf 3.0, Linux и FreeBSD для iPerf 3.1).

См. Также https://github.com/esnet/iperf



Изменение между iPerf 2.0.6, iPerf 2.0.7 и iPerf 2.0.8

  • 2.0.6 набор изменений ([email protected]) Март 2014 г .:
    • Увеличьте общую память для заголовков отчетов, уменьшая конфликты мьютексов.Нужен для увеличения производительности. Незначительное изменение кода, которое должно быть независимым от платформы / ОС
  • 2.0.7 набор изменений ([email protected]) Август 2014 г .:
    • Версия только для Linux, которая поддерживает конечную / конечную задержку (предполагается, что часы синхронизированы)
    • Поддержка меньшего интервала между отчетами (5 миллисекунд или больше)
    • Конечная / конечная задержка с UDP (среднее / мин. / Макс.), Отображение в миллисекундах с разрешением микросекунды
    • Таймауты чтения из сокета (только сервер), поэтому отчеты iperf появляются независимо от того, что пакеты не получены
    • Отметки времени отчета теперь отображают разрешение в миллисекундах
    • Локальная привязка поддерживает значение порта с использованием двоеточия в качестве разделителя (-B 10.10.10.1: 60001)
    • Используйте планировщик реального времени Linux и временные метки на уровне пакетов для повышения точности задержки
    • Предложить PTP на клиенте и сервере для синхронизации часов с микросекундами
    • Предложите образец качества для грандмастера PTP, такой как дисциплинированный генератор GPS от таких компаний, как Spectracom
  • 2.0.8 набор изменений (по состоянию на 12 января 2015 г.):
    • Исправить переносимость, скомпилировать и протестировать с Linux, Win10, Win7, WinXP, MacOS и Android
    • Клиент теперь требует -u для UDP (больше не используется по умолчанию для UDP с -b)
    • Поддержка устаревших форматов отчетов
    • Поддержка -e для получения расширенных отчетов
    • Поддержка потоков с ограничением скорости TCP (через -b) с использованием token bucket
    • Поддержка пакетов в секунду (UDP) через pps в единицах измерения (например,грамм. -b 1000 пакетов в секунду)
    • Отображение PPS в отчетах клиента и сервера (UDP)
    • Поддержка планировщика реального времени в качестве параметра командной строки (—realtime или -z)
    • Улучшить путь кода tx клиента, чтобы фактическая предлагаемая скорость передачи сходилась к значению -b
    • Повышение точности вызовов с микросекундной задержкой (независимо от платформы)
    • (Использование фильтра Калмана для прогнозирования ошибок задержки и корректировки задержек на прогнозируемую ошибку)
    • Отображение целевого времени цикла в начальном заголовке клиента (UDP)
    • Исправить окончательный отчет о задержке, отправленный от сервера к клиенту (UDP)
    • Включить стандартное отклонение в выводе задержки
    • Подавить нереалистичный вывод задержки (- / — / — / -)
    • Поддержка SO_SNDTIMEO при отправке, поэтому запись в сокет не будет блокироваться за пределами -t (TCP)
    • Используйте clock_gettime, если доступно (предпочтительнее, чем gettimeofday ())
    • TCP-запись и количество ошибок (TCP-повторные попытки и CWND для Linux)
    • Счетчик чтения TCP, гистограмма чтения TCP (8 ячеек)
    • Сервер закроет сокет после -t секунд отсутствия трафика

См. Также https: // sourceforge.сеть / проекты / iperf2 /



iPerf 2 Пользовательская документация

ОБЩИЕ ОПЦИИ
Параметр командной строки Параметр переменной среды Описание
-f , —format [bkmaBKMA] $ IPERF_FORMAT Буква, определяющая формат для печати чисел пропускной способности. Поддерживаемые форматы:
 'b' = бит / сек 'B' = байт / сек
'k' = Кбит / сек 'K' = КБайт / сек
'm' = Мбит / с 'M' = МБит / с
'g' = Гбит / сек 'G' = Гбайт / сек
'a' = адаптивные биты / сек 'A' = адаптивные байты / сек 
Адаптивные форматы выбирают между килограммами и мега- в зависимости от ситуации.3, поэтому мы используем это при работе с биты. Если вас это действительно беспокоит, используйте -f b и произведите вычисления.
-i , —interval # $ IPERF_INTERVAL Устанавливает интервал времени в секундах между периодической полосой пропускания, джиттером, и отчеты о потерях. Если ненулевое значение, отчет создается каждые интервала секунды полосы пропускания с момента последнего отчета. Если ноль, нет периодических отчеты распечатываются.По умолчанию — ноль.
-l , -len # [км] $ IPERF_LEN Длина буферов для чтения или записи. iPerf работает, написав массив из len байт несколько раз. По умолчанию 8 КБ для TCP, 1470 байтов для UDP. Примечание для UDP: это размер дейтаграммы, и его необходимо уменьшить при использовании Адресация IPv6 до 1450 или меньше во избежание фрагментации. См. Также -n и т опции.
, —print_mss $ IPERF_PRINT_MSS Распечатайте сообщенный размер TCP MSS (с помощью параметра TCP_MAXSEG) и наблюдаемые размеры чтения, которые часто коррелируют с MSS. MSS обычно MTU — 40 байт для заголовка TCP / IP. Часто немного меньший MSS сообщается из-за лишнего пространства заголовка из параметров IP. Тип интерфейса также печатается соответствующий MTU (Ethernet, FDDI и т. д.). Этот опция не реализована во многих ОС, но размеры чтения могут по-прежнему укажите MSS.
-p , —port # $ IPERF_PORT Порт сервера для прослушивания сервера и подключения клиента. к. Это должно быть одинаково как на клиенте, так и на сервере. По умолчанию 5001, то же, что и ttcp.
-u , -udp $ IPERF_UDP Используйте UDP вместо TCP. См. Также -b вариант.
-w , —window # [KM] $ TCP_WINDOW_SIZE Устанавливает размер буфера сокета на указанное значение.Для TCP это устанавливает размер окна TCP. Для UDP это просто буфер, в котором дейтаграммы получены, и таким образом ограничивает самый большой размер принимаемой датаграммы.
-B , —bind хост $ IPERF_BIND Привязка к хосту , одному из адресов этого компьютера. Для клиента это устанавливает исходящий интерфейс. Для сервера это устанавливает входящие интерфейс. Это полезно только на многосетевых хостах, у которых есть несколько сетевые интерфейсы.

Для iPerf в режиме UDP-сервера это также используется для привязки и присоединения к многоадресная группа. Используйте адреса в диапазоне от 224.0.0.0 до 239.255.255.255. для многоадресной рассылки. См. Также -T вариант.

-C , —совместимость $ IPERF_COMPAT Режим совместимости позволяет использовать со старой версией iPerf. Этот режим не требуется для взаимодействия, но настоятельно рекомендуется. В В некоторых случаях при использовании репрезентативной потоковой передачи вы могли вызвать ошибку 1. 7 сервер чтобы сбой или вызвать нежелательные попытки подключения.
-M , —mss # [KM} $ IPERF_MSS Попытка установить максимальный размер сегмента TCP (MSS) через TCP_MAXSEG вариант. MSS обычно представляет собой MTU — 40 байт для заголовка TCP / IP. За ethernet, MSS составляет 1460 байт (MTU 1500 байт). Этот вариант не реализован на многих ОС.
-N , —nodelay $ IPERF_NODELAY Установите параметр TCP без задержки, отключив алгоритм Нэгла.Обычно это отключено только для интерактивных приложений, таких как telnet.
-V (начиная с v1.6 и выше). Привязать к IPv6-адресу
Сторона сервера:
$ iperf -s -V

Клиентская сторона:
$ iperf -c -V

Примечание. В версии 1.6. 3 и новее конкретный IPv6-адрес не нужно связывать с параметром -B, предыдущая версия 1.6 версии делают. Также в большинстве ОС, использующих эту опцию, также будет отвечать IPv4. клиенты, использующие сопоставленные адреса IPv4.
-h , —help Распечатайте сводку команд и выйдите.
-v , —version Распечатать информацию о версии и выйти. Печатает pthreads, если скомпилирован с Потоки POSIX, «потоки Win32», если они скомпилированы с потоками Microsoft Win32, или «однопоточный», если скомпилирован без потоков.
ОПЦИИ ДЛЯ СЕРВЕРА
Параметр командной строки Параметр переменной среды Описание
-s , -сервер $ IPERF_SERVER Запустите iPerf в режиме сервера. (iPerf2 может обрабатывать несколько клиентских запросов)
-D (начиная с версии 1.2 или выше). Запуск сервера как демона (платформы Unix)
На платформах Win32 там, где доступны службы, iPerf будет работать как служба.
-R (только для Windows, начиная с версии 1.2 и выше). Удалите службу iPerf (если она запущена).
-o (только для Windows, начиная с v1.2 и выше). Перенаправить вывод в указанный файл.
-c , —client host $ IPERF_CLIENT Если iPerf находится в режиме сервера, то указав хост с помощью -c ограничит количество подключений, которые iPerf примет указан хост . Не работает для UDP.
-P , —параллельно # $ IPERF_PARALLEL Число подключений, которые должен обрабатывать сервер перед закрытие. По умолчанию 0 (что означает прием соединений навсегда).
ОПЦИИ ДЛЯ КЛИЕНТА
Параметр командной строки Параметр переменной среды Описание
-b , —bandwidth # [KM] $ IPERF_BANDWIDTH Пропускная способность UDP для отправки в битах / сек. Это подразумевает параметр -u. По умолчанию 1 Мбит / сек.
-c , —client host $ IPERF_CLIENT Запустите iPerf в режиме клиента, подключившись к серверу iPerf, работающему на хост .
-d , -dualtest $ IPERF_DUALTEST Запустите iPerf в режиме двойного тестирования. Это заставит сервер подключиться обратно клиенту на порт, указанный в -L опция (или значения по умолчанию к порту, на котором клиент подключился к серверу). Это делается немедленно поэтому запускать тесты одновременно. Если вы хотите чередовать тестовая попытка -r.
-n , —num # [KM] $ IPERF_NUM Количество буферов для передачи.Обычно iPerf отправляет 10 секунд. Параметр -n отменяет это и отправляет массив из len байт число раз, независимо от того, сколько времени это займет. См. Также -l и т опции.
-r , —tradeoff $ IPERF_TRADEOFF Запустите iPerf в режиме тестирования компромисса. Это заставит сервер подключиться обратно клиенту на порт, указанный в -L опция (или значения по умолчанию к порту, на котором клиент подключился к серверу).Это делается после прекращение клиентского соединения, поэтому запуск тестов чередование. Если вы хотите провести одновременный тест, попробуйте -d.
-t , —time # $ IPERF_TIME Время в секундах для передачи. iPerf нормально работает многократная отправка массива из len байт в течение времени секунд. По умолчанию 10 секунд.См. Также -l и н опции.
-L , —listenport # $ IPERF_LISTENPORT Указывает порт, через который сервер будет подключаться к клиент на. По умолчанию используется порт, используемый для подключения к серверу. от клиента.
-P , —параллельно # $ IPERF_PARALLEL Количество одновременных подключений к серверу.Дефолт равно 1. Требуется поддержка потоков как на клиенте, так и на сервере.
-S , —tos # $ IPERF_TOS Тип обслуживания исходящих пакетов. (Многие маршрутизаторы игнорируют TOS поле.) Вы можете указать значение в шестнадцатеричном виде с префиксом ‘0x’, в восьмеричном с помощью префикс ‘0’ или в десятичном формате. Например, ‘0x10’ шестнадцатеричный = ‘020’ восьмеричный = ’16’ десятичный. Номера TOS, указанные в RFC 1349:
 IPTOS_LOWDELAY минимизировать задержку 0x10
IPTOS_THROUGHPUT увеличить пропускную способность 0x08
IPTOS_RELIABILITY увеличить надежность 0x04
IPTOS_LOWCOST минимизировать стоимость 0x02 
-T , —ttl # $ IPERF_TTL Время жизни исходящих многоадресных пакетов.Это по сути количество проходов маршрутизатора, которое нужно пройти, а также используется для определения области действия. По умолчанию 1, локальная ссылка.
-F (начиная с версии 1.2 и выше). Используйте репрезентативный поток для измерения пропускной способности, например : —
$ iperf -c <адрес сервера> -F <имя-файла>
-I (начиная с версии 1. 2 или выше). То же, что и -F, ввод из стандартного ввода.


Настройка TCP-соединения

Основная цель iPerf — помочь настроить TCP-соединения по определенному пути.Большинство Основной проблемой настройки TCP является размер окна TCP, который определяет, сколько данных может быть в сети в любой точке. Если он слишком мал, отправитель будет время от времени простаивать и работать с плохой производительностью. Теоретическое значение для использования Размер окна TCP — продукт задержки полосы пропускания ,
пропускная способность узкого места * время прохождения туда и обратно
В приведенном ниже примере modi4 / cyclops узким местом является канал DS3 со скоростью 45 Мбит / с, а время приема-передачи, измеренное с помощью команды ping, составляет 42 мс.Произведение задержки полосы пропускания
45 Мбит / с * 42 мс
= (45e6) * (42e-3)
= 18

бит


= 230 КБайт
Это отправная точка для определения наилучшего размера окна; установка большего или меньшего значения может дать лучшие результаты. В нашем примере размеры буфера более 130 КБ не улучшили производительность, несмотря на произведение задержки полосы пропускания, равное 230 КБ.

Обратите внимание, что многие ОС и хосты имеют верхние ограничения на размер окна TCP. Они могут быть размером от 64 КБ или до нескольких МБ. iPerf пытается определить, когда это происходит, и выдает предупреждение о том, что фактические и запрошенные размеры окон равны не равно (как показано ниже, хотя это связано с округлением в IRIX).Для получения дополнительной информации о размерах окна TCP см. LaFibre.info. Вот пример сеанса между node1 в Иллинойсе и node2 в Северной Каролине. Они подключаются через магистраль vBNS и канал DS3 со скоростью 45 Мбит / с. Обратите внимание, что мы улучшаем пропускную способность в 3 раза, используя правильные размеры окна TCP. Используйте функцию адаптивных размеров окон на платформах, которые позволяют устанавливать размеры окон с точностью до байтов.

  узел2>  iperf -s
-------------------------------------------------- ----------
Сервер прослушивает TCP-порт 5001
Размер окна TCP: 60. 0 КБайт (по умолчанию)
-------------------------------------------------- ----------
[4] локальный  порт 5001 соединен с  порт 2357
[ID] Интервальная пропускная способность передачи
[4] 0,0-10,1 с 6,5 МБ  5,2 Мбит / с

узел1>  iperf -c узел2
-------------------------------------------------- ----------
Клиент подключается к node1, TCP-порт 5001
Размер окна TCP: 59,9 КБайт (по умолчанию)
-------------------------------------------------- ----------
[3] локальный  порт 2357, связанный с  порт 5001
[ID] Интервальная пропускная способность передачи
[3] 0.0-10,0 с 6,5 МБ 5,2 Мбит / с 

  узел2>  iperf -s -w 130k
-------------------------------------------------- ----------
Сервер прослушивает TCP-порт 5001
Размер окна TCP: 130 КБайт
-------------------------------------------------- ----------
[4] локальный  порт 5001 подключен к  порт 2530
[ID] Интервальная пропускная способность передачи
[4] 0,0-10,1 с 19,7 МБ  15,7 Мбит / с

узел1>  iperf -c node2 -w 130k
-------------------------------------------------- ----------
Клиент подключается к node2, TCP-порт 5001
Размер окна TCP: 129 КБайт (ВНИМАНИЕ: запрошено 130 КБайт)
-------------------------------------------------- ----------
[3] локальный  порт 2530 соединен с  порт 5001
[ID] Интервальная пропускная способность передачи
[3] 0. 0-10,0 с 19,7 МБ 15,8 Мбит / с
 
Еще один тест, который нужно сделать, — запустить параллельные потоки TCP. Если общая совокупная пропускная способность превышает то, что получает отдельный поток, что-то не так. Либо размер окна TCP слишком мал, либо в реализации TCP ОС есть ошибки, либо в самой сети есть недостатки. См. Выше размеры окна TCP; в противном случае диагностировать, что несколько затруднительно. Если iPerf скомпилирован с потоками pthread, это может проверить один клиент и сервер, в противном случае установите несколько клиентов и серверов на разные порты.Вот пример, когда один поток получает 16,5 Мбит / с, но два параллельных потока вместе получаем 16,7 + 9,4 = 26,1 Мбит / сек, даже при использовании больших размеров окна TCP:
  узел2>  iperf -s -w 300k
-------------------------------------------------- ----------
Сервер прослушивает TCP-порт 5001
Размер окна TCP: 300 КБайт
-------------------------------------------------- ----------
[4] локальный  порт 5001 соединен с  порт 6902
[ID] Интервальная пропускная способность передачи
[4] 0. 0-10,2 с 20,9 МБ  16,5 Мбит / с

  [4] локальный  порт 5001, связанный с  порт 6911
[5] локальный порт  5001, связанный с  порт 6912
[ID] Интервальная пропускная способность передачи
[5] 0,0–10,1 с 21,0 МБ  16,7 Мбит / с
  [4] 0,0-10,3 с 12,0 МБ  9,4 Мбит / с

узел1>  ./iperf -c node2 -w 300k
-------------------------------------------------- ----------
Клиент подключается к node2, TCP-порт 5001
Размер окна TCP: 299 КБайт (ВНИМАНИЕ: запрошено 300 КБайт)
-------------------------------------------------- ----------
[3] локальный  порт 6902 соединен с  порт 5001
[ID] Интервальная пропускная способность передачи
[3] 0.0-10,2 с 20,9 МБ 16,4 Мбит / с

  узел1>  iperf -c node2 -w 300k -P 2
-------------------------------------------------- ----------
Клиент подключается к node2, TCP-порт 5001
Размер окна TCP: 299 КБайт (ВНИМАНИЕ: запрошено 300 КБайт)
-------------------------------------------------- ----------
[4] локальный  порт 6912, связанный с  порт 5001
[3] локальный  порт 6911 соединен с  порт 5001
[ID] Интервальная пропускная способность передачи
[4] 0. 0-10,1 с 21,0 МБ 16,6 Мбит / с
[3] 0,0–10,2 с 12,0 МБ 9,4 Мбит / с
 
Вторичной проблемой настройки TCP является максимальная единица передачи (MTU). Для максимальной эффективности оба хоста должны поддерживать определение MTU пути. Хосты без определения MTU пути часто используют 536 в качестве MSS, что тратит впустую полосу пропускания и время обработки. Используйте параметр -m, чтобы отобразить, какой MSS используется, и посмотрите, соответствует ли это тому, что вы ожидаете. Часто для Ethernet это около 1460 байт.
  узел3>  iperf -s -m
-------------------------------------------------- ----------
Сервер прослушивает TCP-порт 5001
Размер окна TCP: 60.0 КБайт (по умолчанию)
-------------------------------------------------- ----------
[4] локальный порт  5001, связанный с  портом 1096
[ID] Интервальная пропускная способность передачи
[4] 0,0–2,0 с 1,8 МБ 6,9 Мбит / с
[4]  Размер MSS 1448 байт (MTU 1500 байт, Ethernet)
  [4] Длины чтения встречаются более чем в 5% чтений:
[4] 952 байта прочитано 219 раз (16,2%)
[4] 1448 байт прочитано 1128 раз (83,6%)
 
Вот хост, который не поддерживает обнаружение MTU пути. Он будет отправлять и получать только небольшие пакеты размером 576 байт.
  узел4>  iperf -s -m
-------------------------------------------------- ----------
Сервер прослушивает TCP-порт 5001
Размер окна TCP: 32,0 КБайт (по умолчанию)
-------------------------------------------------- ----------
[4] локальный порт  5001, связанный с  порт 13914
[ID] Интервальная пропускная способность передачи
[4] 0,0–2,3 с 632 КБайт 2,1 Мбит / с
  ПРЕДУПРЕЖДЕНИЕ. Возможно, не разрешено обнаружение MTU пути. [4]  Размер MSS 536 байт (MTU 576 байт, минимум)
  [4] Длины чтения встречаются более чем в 5% чтений:
[4] 536 байт прочитано 308 раз (58,4%)
[4] 1072 байта прочитано 91 раз (17,3%)
[4] 1608 байт прочитано 29 раз (5,5%)
 
iPerf поддерживает другие параметры настройки, которые были добавлены для исключительных сетевых ситуаций, таких как преобразование HIPPI в HIPPI через ATM.

Настройка UDP-соединения

iPerf создает поток UDP с постоянной скоростью передачи данных. Это очень искусственный поток, похожий на голосовое общение, но не более того.

Вам нужно настроить размер дейтаграммы (-l) в соответствии с размером, используемым вашим приложением.

Сервер обнаруживает потерю дейтаграммы UDP по номерам идентификаторов в дейтаграммах. Обычно дейтаграмма UDP превращается в несколько IP-пакетов. Потеря одного IP-пакета приведет к потере всей дейтаграммы. Чтобы измерить потерю пакетов вместо потери дейтаграммы, сделайте дейтаграммы достаточно маленькими, чтобы поместиться в один пакет, используя параметр -l. Размер по умолчанию 1470 байт подходит для Ethernet. Также обнаруживаются неупорядоченные пакеты.(Неупорядоченные пакеты вызывают некоторую неоднозначность в подсчете потерянных пакетов; iPerf предполагает, что это не повторяющиеся пакеты, поэтому они исключаются из числа потерянных пакетов.) Поскольку TCP не сообщает пользователю о потерях, я считаю, что тесты UDP помогают увидеть потерю пакетов на пути.

Вычисления джиттера постоянно вычисляются сервером, как указано в RTP в RFC 1889. Клиент записывает 64-битную временную метку секунды / микросекунды в пакет. Сервер вычисляет относительное время прохождения как (время приема сервера — время отправки клиента).Часы клиента и сервера не должны быть синхронизирован; любая разница вычитается при вычислении джиттера. Джиттер представляет собой сглаженное среднее значение разницы между последовательными временами прохождения.
  узел2>  iperf -s -u -i 1
-------------------------------------------------- ----------
Сервер прослушивает UDP-порт 5001
Получение датаграмм размером 1470 байт
Размер буфера UDP: 60,0 КБайт (по умолчанию)
-------------------------------------------------- ----------
[4] локальный  порт 5001 соединен с  порт 9726
[ID] Интервал потери джиттера полосы пропускания / Всего дейтаграмм
[4] 0.0–1,0 с 1,3 МБ 10,0 Мбит / с 0,209 мс 1/894 (0,11%)
[4] 1,0–2,0 с 1,3 МБ 10,0 Мбит / с 0,221 мс 0/892 (0%)
[4] 2,0–3,0 с 1,3 МБ 10,0 Мбит / с 0,277 мс 0/892 (0%)
[4] 3,0–4,0 с 1,3 МБ 10,0 Мбит / с 0,359 мс 0/893 (0%)
[4] 4,0–5,0 с 1,3 МБ 10,0 Мбит / с 0,251 мс 0/892 (0%)
[4] 5,0–6,0 с 1,3 МБ 10,0 Мбит / с 0,215 мс 0/892 (0%)
[4] 6,0–7,0 с 1,3 МБ 10,0 Мбит / с 0,325 мс 0/892 (0%)
[4] 7. 0-8,0 с 1,3 МБ 10,0 Мбит / с 0,254 мс 0/892 (0%)
[4] 8,0–9,0 с 1,3 МБ 10,0 Мбит / с 0,282 мс 0/892 (0%)
[4] 0,0–10,0 с 12,5 МБ 10,0 Мбит / с 0,243 мс 1/8922 (0,011%)

  узел1>  iperf -c node2 -u -b 10m
-------------------------------------------------- ----------
Клиент подключается к node2, порт UDP 5001
Отправка датаграмм размером 1470 байт
Размер буфера UDP: 60,0 КБайт (по умолчанию)
-------------------------------------------------- ----------
[3] локальный  порт 9726 соединен с  порт 5001
[ID] Интервальная пропускная способность передачи
[3] 0.0-10,0 с 12,5 МБ 10,0 Мбит / с
[3] Отправлено 8922 дейтаграммы.
 
Обратите внимание на более высокий джиттер из-за повторной сборки дейтаграммы при использовании датаграмм размером 32 КБ, каждая из которых разбита на 23 пакета по 1500 байтов. Более высокая потеря дейтаграммы, наблюдаемая здесь, может быть связана с пиковым трафиком, который составляет 23 встречных пакета, а затем длинный паузу, а не равномерно распределенные отдельные пакеты.
  узел2>  iperf -s -u -l 32k -w 128k -i 1
-------------------------------------------------- ----------
Сервер прослушивает UDP-порт 5001
Получение датаграмм размером 32768 байт
Размер буфера UDP: 128 КБайт
-------------------------------------------------- ----------
[3] локальный  порт 5001 соединен с  порт 11303
[ID] Интервал потери джиттера полосы пропускания / Всего дейтаграмм
[3] 0.0–1,0 с 1,3 МБ 10,0 Мбит / с 0,430 мс 0/41 (0%)
[3] 1,0–2,0 с 1,1 МБ 8,5 Мбит / с 5,996 мс 6/40 (15%)
[3] 2,0–3,0 с 1,2 МБ 9,7 Мбит / с 0,796 мс 1/40 (2,5%)
[3] 3,0–4,0 с 1,2 МБ 10,0 Мбит / с 0,403 мс 0/40 (0%)
[3] 4,0–5,0 с 1,2 МБ 10,0 Мбит / с 0,448 мс 0/40 (0%)
[3] 5,0–6,0 с 1,2 МБ 10,0 Мбит / с 0,464 мс 0/40 (0%)
[3] 6,0–7,0 с 1,2 МБ 10,0 Мбит / с 0,442 мс 0/40 (0%)
[3] 7.0-8,0 с 1,2 МБ 10,0 Мбит / с 0,342 мс 0/40 (0%)
[3] 8,0–9,0 с 1,2 МБ 10,0 Мбит / с 0,431 мс 0/40 (0%)
[3] 9,0–10,0 с 1,2 МБ 10,0 Мбит / с 0,407 мс 0/40 (0%)
[3] 0,0–10,0 с 12,3 МБ 9,8 Мбит / с 0,407 мс 7/401 (1,7%)

  узел1>  iperf -c node2 -b 10m -l 32k -w 128k
-------------------------------------------------- ----------
Клиент подключается к node2, порт UDP 5001
Отправка датаграмм размером 32768 байт
Размер буфера UDP: 128 КБайт
-------------------------------------------------- ----------
[3] локальный  порт 11303 соединен с  порт 5001
[ID] Интервальная пропускная способность передачи
[3] 0. 0-10,0 с 12,5 МБ 10,0 Мбит / с
[3] Отправлено 401 дейтаграмма.
 


Многоадресная передача

Чтобы протестировать многоадресную рассылку, запустите несколько серверов с установленной опцией привязки (-B, —bind) на адрес группы многоадресной рассылки. Запускаем клиент, подключаемся к многоадресной рассылке адрес группы и установка TTL (-T, —ttl) по мере необходимости. В отличие от обычного TCP и UDP тесты, серверы многоадресной рассылки могут быть запущены после клиента. В таком случае, датаграммы, отправленные до запуска сервера, отображаются как потери в первом периодическом report (61 дейтаграмма на arno ниже).

  узел5>  iperf -c 224.0.67.67 -u --ttl 5 -t 5
-------------------------------------------------- ----------
Клиент подключается к 224.0.67.67, UDP-порт 5001
Отправка датаграмм размером 1470 байт
Установка TTL многоадресной рассылки на 5
Размер буфера UDP: 32,0 КБайт (по умолчанию)
-------------------------------------------------- ----------
[3] локальный порт  1025 соединен с портом 5001 224. 0.67.67
[ID] Интервальная пропускная способность передачи
[3] 0,0–5,0 с 642 КБ 1.0 Мбит / сек
[3] Отправлено 447 дейтаграмм.

  узел5>  iperf -s -u -B 224.0.67.67 -i 1
-------------------------------------------------- ----------
Сервер прослушивает UDP-порт 5001
Привязка к локальному адресу 224.0.67.67
Присоединение к группе многоадресной рассылки 224.0.67.67
Получение датаграмм размером 1470 байт
Размер буфера UDP: 32,0 КБайт (по умолчанию)
-------------------------------------------------- ----------
[3] локальный порт 5001 224.0.67.67 подключен к порту 1025 
[ID] Интервал потери джиттера полосы пропускания / Всего дейтаграмм
[3] 0.0–1,0 с 131 КБайт 1,0 Мбит / с 0,007 мс 0/91 (0%)
[3] 1,0–2,0 с 128 Кбайт 1,0 Мбит / с 0,008 мс 0/89 (0%)
[3] 2,0–3,0 с 128 Кбайт 1,0 Мбит / с 0,010 мс 0/89 (0%)
[3] 3,0–4,0 с 128 КБайт 1,0 Мбит / с 0,013 мс 0/89 (0%)
[3] 4,0–5,0 с 128 КБайт 1,0 Мбит / с 0,008 мс 0/89 (0%)
[3] 0,0–5,0 с 642 КБайт 1,0 Мбит / с 0,008 мс 0/447 (0%)

  узел6>  iperf -s -u -B 224. 0.67.67 -i 1
-------------------------------------------------- ----------
Сервер прослушивает UDP-порт 5001
Привязка к локальному адресу 224.0,67,67
Присоединение к группе многоадресной рассылки 224.0.67.67
Получение датаграмм размером 1470 байт
Размер буфера UDP: 60,0 КБайт (по умолчанию)
-------------------------------------------------- ----------
[3] локальный порт 5001 224.0.67.67 подключен к порту 1025 
[ID] Интервал потери джиттера полосы пропускания / Всего дейтаграмм
[3] 0,0–1,0 с 129 Кбайт 1,0 Мбит / с 0,778 мс 61/151 (40%)
[3] 1,0–2,0 с 128 Кбайт 1,0 Мбит / с 0,236 мс 0/89 (0%)
[3] 2,0–3,0 сек 128 КБ 1.0 Мбит / с 0,264 мс 0/89 (0%)
[3] 3,0–4,0 с 128 Кбайт 1,0 Мбит / с 0,248 мс 0/89 (0%)
[3] 0,0–4,3 с 554 КБайт 1,0 Мбит / с 0,298 мс 61/447 (14%)
 

Запустите несколько клиентов или серверов, как описано выше, отправляя данные на один и тот же сервер многоадресной рассылки. (Если у вас есть несколько серверов, прослушивающих групповой адрес, каждый из серверов будет получать данные)



Режим IPv6

Получите IPv6-адрес узла с помощью команды ifconfig.
Используйте параметр -V, чтобы указать, что вы используете адрес IPv6. Обратите внимание, что нам также необходимо явно привязать адрес сервера.

Сторона сервера:
$ iperf -s -V

Клиентская сторона:
$ iperf -c -V>

Примечание. IPerf версии 1.6.2 и более ранней требует явной привязки адреса IPv6. с параметром -B для сервера.



Использование репрезентативных потоков для измерения пропускной способности

Используйте параметр -F или -I.Если вы хотите проверить, как работает ваша сеть со сжатыми / несжатыми потоками, просто создайте репрезентативные потоки и используйте опцию -F, чтобы проверить это. Обычно это связано с канальным уровнем. сжатие данных.

Параметр -F предназначен для ввода файла.
Параметр -I предназначен для ввода со стандартного ввода.

Например.
Клиент: $ iperf -c <адрес сервера> -F <имя-файла>

Клиент: $ iperf -c <адрес сервера> -I



Запуск сервера как демона

Используйте параметр командной строки -D, чтобы запустить сервер как демон. Перенаправить вывод в файл.
Например. iperf -s -D> iperflog. Будет запущен iPerf Server. как демон, и сообщения сервера будут регистрироваться в файле iperfLog.


Использование iPerf как службы под Win32

Для Win32 есть три варианта:
-o имя выходного файла
выводит сообщения в указанный файл
-s -D
установите iPerf как службу и запустите его
-s -R
удалить службу iPerf

Примеры:

iperf -s -D -o iperflog.txt
установит службу iPerf и запустит ее. Сообщения будут отправляться в «% windir% \ system32 \ iperflog.txt»
iperf -s -R
удалит службу iPerf, если она установлена.

Примечание. Если вы больше не хотите перезапускать службу iPerf после того, как убили ее с помощью Microsoft Консоль управления или диспетчер задач Windows, убедитесь, что используете правильный ОПЦИЯ в диалоговом окне свойств службы.



Адаптивные размеры окон (в разработке)

Используйте параметр -W на клиенте, чтобы запустить клиент с адаптивным размером окна.Убедитесь, что размер окна сервера достаточно велик для этой опции.
Например … Если размер окна TCP сервера составляет 8 КБ, это не помогает, если размер окна TCP клиента равен 256 КБ.
256 КБ Размер окна TCP сервера должен быть достаточным для большинства сетей с высокой пропускной способностью.

Клиент изменяет размер окна TCP, используя двоичный экспоненциальный алгоритм. Это означает, что вы можете заметить, что предлагаемый размер окна TCP может варьироваться в зависимости от трафика в сети, iPerf предложит лучший размер окна для текущего сетевого сценария.



Составление

После получения дистрибутива в UNIX распакуйте его с помощью gzip и tar. Это создаст новый каталог iperf- с исходными файлами и документацией.

iPerf корректно компилируется на многих системах, включая Linux, SGI IRIX, HP-UX, Solaris, AIX и Cray UNICOS. Используйте « make » для настройки вашей ОС и компиляции исходного кода.

gunzip -c iperf- <версия> .tar.gz | tar -xvf -
cd iperf- <версия>
./ настроить
делать
 

Чтобы установить iPerf, используйте команду « make install », которая спросит вас, где его установить. Проще всего перекомпилировать заново. Сделайте « make distclean », затем « ./configure; сделать ‘. Дополнительные параметры см. В Makefile.

iPerf — Контакты — Отчеты об ошибках

iPerf — Контакты — Отчеты об ошибках

Список рассылки

Для отправки сообщения всем участникам списка необходимо подписаться на Iperf-users.

Чтобы увидеть коллекцию предыдущих сообщений в списке, посетите архив пользователей Iperf.



Отчет об ошибке для iPerf3

Перед отправкой отчета об ошибке попробуйте проверить последнюю версию кода и убедитесь, что она еще не исправлена. Затем отправьте сообщение в трекер проблем iPerf3 на GitHub: https://github.com/esnet/iperf/issues

.

Известные проблемы

Следующие ниже проблемы являются известными известными проблемами, которые, вероятно, представляют интерес для значительной части пользователей или имеют большое влияние на некоторых пользователей, и по которым проблемы уже были зарегистрированы в системе отслеживания проблем.Эти проблемы либо открыты (что указывает на отсутствие решения в настоящее время), либо закрыты с пометкой, что в настоящее время не предпринимается никаких дальнейших попыток решить проблему:

  • Производительность UDP: были замечены некоторые проблемы с iperf3 на испытательном стенде ESnet 100G при высоких скоростях UDP (выше 10 Гбит / с). Симптомом является то, что при любом конкретном запуске iperf3 получатель сообщает о скорости потери около 20%, независимо от параметра -b, используемого на стороне клиента. Эта проблема не связана с iperf3 и может быть связана с размещением процесса iperf3 на ЦП и его отношением к входящей сетевой карте. В некоторых случаях эта проблема может быть уменьшена путем соответствующего использования параметра соответствия ЦП (« -A »). (Ошибка №55)
  • .
  • Интервальные отчеты в сетях с высокими потерями: в соответствии с текущей реализацией iperf3 команда записи отправителя блокируется до тех пор, пока не будет записан весь блок. Это означает, что отправка полного блока может занять несколько секунд, если в сети высокие потери, а интервальные отчеты будут иметь сильно различающиеся интервалы времени. Решение обсуждается, но пока можно попробовать использовать небольшой размер блока, например « -l 4K ».(Ошибка № 125, исправление будет выпущено в iperf 3.1)
  • Флаг « -Z » иногда приводит к зависанию клиента iperf3 на OSX. (Ошибка № 129)
  • .
  • При указании размера буфера TCP с помощью флага «-w» в Linux ядро ​​Linux автоматически удваивает переданное значение, чтобы компенсировать накладные расходы. (Это можно увидеть с помощью флага iperf3 —debug.) Однако CWND фактически не увеличивается до удвоенного значения, а только примерно до 75% от удвоенного значения. Некоторая часть этого поведения задокументирована на странице руководства tcp (7).(Выпуск № 145)
  • .


Отчет об ошибке для iPerf2

Лучший способ получить помощь по iPerf2 — это посетить его форум https://sourceforge.net/p/iperf2/discussion/



Обновление сайта iperf.fr

Чтобы обновить этот сайт, сообщите о них по адресу [email protected], и мы постараемся исправить их быстро.



Код Авторы

Основными авторами iPerf3 являются (в алфавитном порядке): Джон Дуган, Сет Эллиотт, Брюс А.Мах, Джефф Посканзер, Каустубх Прабху. Дополнительные коды предоставлены (также в алфавитном порядке): Марк Эшли, Аарон Браун, Эней Джейсл, Сьюзант Сахани, Брюс Симпсон, Брайан Тирни.

iPerf3 содержит оригинальный код iPerf2. Авторы iPerf2 (в алфавитном порядке): Джон Дуган, Джон Эстабрук, Джим Фербюзон, Эндрю Галлатин, Марк Гейтс, Кевин Гиббс, Стивен Хеммингер, Натан Джонс, Фенг Цин, Геррит Ренкер, Аджай Тирумала, Алекс Варшавски.

Благодарности iPerf1: Спасибо Марку Гейтсу (NLANR), Алексу Варшавски (NLANR) и Джастину Питчу (Вашингтонский университет) кто отвечал за 1.1.x релизы Iperf. За iPerf 1.7 мы хотели бы поблагодарить Билла Червени (Internet2), Майкла Ламберта (PSC), Дейла Финкельсона (UNL). и Мэтью Зекаускас (Internet2) за помощь в получении доступа к сетям / машинам IPv6. Особая благодарность Мэтью Зекаускасу (Internet2) за помощь в реализации FreeBSD. Также спасибо Kraemer Oliver (Sony) за независимую реализацию IPv6. версия Iperf, которая предоставила полезное сравнение для тестирования наших функций.

Спасибо ESnet за переделку iperf с нуля.iPerf3 — убийственная программа.

Спасибо для хостинга iPerf.fr.

esnet / iperf: iperf3: инструмент измерения пропускной способности сети TCP, UDP и SCTP

Сводка

iperf — это инструмент для активных измерений максимально достижимого пропускная способность в IP-сетях. Поддерживает настройку различных параметров связанные со временем, протоколами и буферами. Для каждого теста он сообщает измеренная пропускная способность / битрейт, потери и другие параметры.

Эта версия, иногда называемая iperf3, является переработкой оригинальная версия, разработанная в NLANR / DAST.iperf3 — это новый реализация с нуля с целью создания более компактного и простого кода base и библиотечную версию функциональности, которую можно использовать в другие программы. iperf3 также имеет ряд функций, которые можно найти в других инструментах. такие как nuttcp и netperf, но отсутствовали в исходном iperf. К ним относятся, например, режим нулевого копирования и дополнительный вывод JSON. Обратите внимание, что iperf3 — это , а не , обратно совместимый с исходным iperf.

Первичная разработка iperf3 происходит на CentOS Linux, FreeBSD, и macOS.В настоящее время это единственные официально поддерживаемые платформ, однако были сообщения об успехе с OpenBSD, NetBSD, Android, Solaris и другие дистрибутивы Linux.

iperf3 в основном разработан ESnet / Lawrence Berkeley National Лаборатория. Он выпущен под лицензией BSD с тремя пунктами.

Для получения дополнительной информации см .: https://software.es.net/iperf

Исходный код и средство отслеживания проблем: https://github.com/esnet/iperf

Получение iperf3

Загрузки iperf3 доступны по адресу:

  https: // загрузки.es.net/pub/iperf/
  

Чтобы проверить самый последний код, клонируйте репозиторий git по адресу:

  https://github.com/esnet/iperf.git
  

Корпус iperf3

Предварительные требования:

Нет.

Дом

  ./configure; делать; сделать установку
  

(Примечание: в случае сбоя настройки попробуйте сначала запустить ./bootstrap.sh )

Вызов iperf3

iperf3 включает страницу руководства, на которой перечислены все параметры командной строки.Страница руководства — это самая последняя информация о различных флагах и параметрах.

Пример использования командной строки см . :

https://fasterdata.es.net/performance-testing/network-troubleshooting-tools/iperf/

При использовании параметров по умолчанию iperf должен хорошо показывать спроектированная производительность приложения. «Типичное хорошо продуманное приложение» означает избегать искусственных улучшений, которые работают только для тестирования (например, splice () для передачи данных в / dev / null). iperf также имеет флаги для оптимизации «наихудшего случая», но они должны быть явно активирован.

Эти флаги включают:

  -Z, --zerocopy использовать метод sendfile () с нулевой копией для отправки данных
-A, --affinity n / n, m установить соответствие процессора
  

Сообщения об ошибках

Перед отправкой отчета об ошибке убедитесь, что вы используете последняя версия кода и убедитесь, что ваша проблема не уже исправлено. Затем отправьте сообщение в систему отслеживания проблем iperf3 на GitHub:

https://github.com/esnet/iperf/issues

В сообщении о проблеме укажите версию iperf3 и на какой платформе вы пытаетесь запустить (укажите платформу информацию, даже если вы не используете поддерживаемую платформу, мы может в любом случае помочь ). Точные аргументы командной строки будут помогите нам воссоздать вашу проблему. Если вы получаете сообщения об ошибках, пожалуйста, дословно включите их, если возможно, но не забудьте дезинфицировать любые конфиденциальная информация.

Если у вас есть вопросы об использовании или о коде, пожалуйста, наберите , а не отправить вопрос. Пожалуйста, используйте для этого один из списков рассылки.

Отношение к iperf 2.x

Обратите внимание, что iperf2 больше не разрабатывается сопровождающие. Однако, начиная с 2014 года, другой разработчик начал исправление ошибок и улучшение функциональности, а также создание выпусков iperf2.Оба проекта (по состоянию на конец 2017 года) в настоящее время находятся в разработке. активно, но самостоятельно. Продолжение развития iperf2 проект можно найти по адресу https://sourceforge.net/projects/iperf2/.

iperf3 содержит ряд опций и функций, не представленных в iperf2. Кроме того, некоторые флаги изменены из их iperf2 аналоги:

  -C, --linux-congestion установить алгоритм управления перегрузкой (только для Linux)
                          (-Z в iperf2)
--bidir режим двунаправленного тестирования
                          (-d в iperf2)
  

Некоторые параметры iperf2 недоступны в iperf3:

  -r, --tradeoff Выполнять двунаправленный тест индивидуально
-T, --ttl time-to-live, для многоадресной рассылки (по умолчанию 1)
-x, --reportexclude [CDMSV] исключить C (соединение) D (данные) M (многоадресная передача)
                              S (настройки) V (сервер) отчеты
-y, --reportstyle C отчет в виде значений, разделенных запятыми
  

Также удалена возможность устанавливать параметры через среду. переменные.

Известные проблемы

На веб-страницах iperf3 содержится набор известных проблем:

https://software.es.net/iperf/dev.html#known-issues

Ссылки

В этом разделе перечислены ссылки на созданные пользователями веб-страницы, касающиеся iperf3. ESnet и Национальная лаборатория Лоуренса Беркли не имеют ответственность за содержание этих страниц.

Авторские права

iperf, Copyright (c) 2014-2021, Регенты Университета Калифорния, через Национальную лабораторию Лоуренса Беркли (предмет до получения любых необходимых разрешений от U.С. Департамент Энергия). Все права защищены.

Если у вас есть вопросы о ваших правах на использование или распространение этого программного обеспечения, обратитесь в отдел передачи технологий Berkeley Lab Отдел по [email protected].

УВЕДОМЛЕНИЕ. Это программное обеспечение принадлежит Министерству энергетики США. Таким образом, правительство США предоставило себе и другим действующий от его имени оплаченный, неисключительный, безотзывный, всемирная лицензия на Программное обеспечение для воспроизведения, подготовки производных работает, публично выступать и публично демонстрировать. Начиная с пяти (5) лет после даты получения разрешения на защиту авторских прав от Министерства энергетики США и с учетом любых последующих продление на пять (5) лет, правительство США предоставляется самому себе и другие лица, действующие от его имени, оплаченные, неисключительные, безотзывная всемирная лицензия на Программное обеспечение на воспроизведение, готовить производные работы, распространять копии среди публики, исполнять публично и публично, и разрешить другим делать это.

Этот код распространяется под лицензией стиля BSD, см. ЛИЦЕНЗИЮ файл для полной информации.

Как проверить пропускную способность сети с помощью инструмента iperf3 в Linux

iperf3 — это бесплатная кроссплатформенная программа с открытым исходным кодом на основе командной строки для измерения пропускной способности сети в реальном времени. Это один из мощных инструментов для тестирования максимально достижимой полосы пропускания в IP-сетях (поддерживает IPv4 и IPv6 ).

Прочтите также : 16 инструментов мониторинга пропускной способности для анализа использования сети в Linux

С помощью iperf вы можете настроить несколько параметров, связанных со временем, буферами и протоколами, такими как TCP, UDP, SCTP.Это удобно для операций по настройке производительности сети.

Чтобы получить максимальную или, скорее, улучшенную производительность сети, вам необходимо увеличить пропускную способность, а также время ожидания возможностей приема и отправки вашей сети. Однако, прежде чем вы сможете приступить к реальной настройке, вам необходимо выполнить несколько тестов, чтобы собрать общую статистику производительности сети, которая будет определять ваш процесс настройки.

Его результаты включают временной интервал в секундах, передаваемые данные, полосу пропускания (скорость передачи), потери и другие полезные параметры производительности сети.В первую очередь он предназначен для помощи в настройке TCP-соединений по определенному пути, и именно на этом мы сосредоточимся в этом руководстве.

Требования:
  • Два сетевых компьютера, на каждом из которых установлено iperf3 .

Как установить iperf3 в системах Linux

Прежде чем вы начнете использовать iperf3 , вам необходимо установить его на двух машинах, которые вы будете использовать для тестирования производительности. Поскольку iperf3 доступен в официальных репозиториях программного обеспечения наиболее распространенных дистрибутивов Linux, его установка должна быть простой с использованием диспетчера пакетов, как показано.

 $ sudo apt install iperf3 # Debian / Ubuntu
$ sudo yum install iperf3 # RHEL / CentOS
$ sudo dnf install iperf3 #Fedora 22+
 

После установки iperf3 на обеих машинах можно начинать тестирование пропускной способности сети.

Как проверить пропускную способность сети между серверами Linux

Сначала подключитесь к удаленному компьютеру, который вы будете использовать в качестве сервера , и запустите iperf3 в режиме сервера, используя флаг -s , по умолчанию он будет прослушивать порт 5201 .

Вы можете указать формат ( k , m , g для Кбит , Мбит , Гбит или K , M , G для Кбайт , Мбайт , Гбайт, ) для отчета, используя переключатель -f , как показано.

 $ iperf3 -s -f К
 

Если порт 5201 используется другой программой на вашем сервере, вы можете указать другой порт (например,g 3000 ) с помощью переключателя -p , как показано.

 $ iperf3 -s -p 3000
 

При желании вы можете запустить сервер как демон, используя флаг -D , и записывать сообщения сервера в файл журнала, как показано ниже.

 $ iperf3 -s -D> iperf3log
 

Затем на вашем локальном компьютере, который мы будем рассматривать как клиент (где происходит фактическое тестирование), запустите iperf3 в клиентском режиме с помощью флага -c и укажите хост, на котором работает сервер (либо используя его IP-адрес, домен или имя хоста).

 $ iperf3 -c 192.168.10.1 -f К
 

Примерно через 18 до 20 секунд клиент должен завершить работу и выдать результаты, указывающие среднюю пропускную способность для теста, как показано на следующем снимке экрана.

Тестирование пропускной способности сети между серверами

Важное замечание : Судя по результатам теста, как показано на снимке экрана выше, есть различия в значениях для сервера и клиента . Но вам всегда следует использовать результаты, полученные с машины iperf client , в каждом тесте, который вы проводите.

Как выполнить расширенное тестирование пропускной способности сети в Linux

Существует ряд клиентских опций для выполнения расширенного теста, как описано ниже.

Одним из важных факторов, определяющих объем данных в сети в данный момент времени, является размер окна TCP — он важен при настройке соединений TCP. Вы можете установить размер окна / размер буфера сокета, используя флаг -w , как показано.

 $ iperf3 -c 192.168.10.1 -f K -w 500K
 

Чтобы запустить его в обратном режиме , где сервер , отправляет, а клиент , принимает, добавьте переключатель -R .

 $ iperf3 -c 192.168.10.1 -f K -w 500K -R
 

Чтобы запустить двунаправленный тест , то есть вы измеряете пропускную способность в обоих направлениях одновременно, используйте опцию -d .

 $ iperf3 -c 192.168.10.1 -f K -w 500K -d
 

Если вы хотите получить результаты сервера в выводе клиента , используйте параметр --get-server-output .

 $ iperf3 -c 192.168.10.1 -f K -w 500K -R --get-server-output
 
Получение результатов сети сервера в клиенте

Также можно установить количество параллельных клиентских потоков (два в этом примере), которые выполняются одновременно, с помощью опций -P .

 $ iperf3 -c 192.168.10.1 -f K -w 500K -P 2
 

Для получения дополнительной информации см. Справочную страницу iperf3.

 $ человек iperf3
 

Домашняя страница iperf3 : https://iperf.fr/

Вот и все! Не забывайте всегда выполнять тесты производительности сети перед тем, как приступить к реальной настройке производительности сети. iperf3 — мощный инструмент, который пригодится для тестирования пропускной способности сети. У вас есть какие-либо мысли или вопросы, которыми вы хотите поделиться, используйте форму комментариев ниже.

Если вы цените то, что мы делаем здесь, на TecMint, вам следует принять во внимание:

TecMint — это самый быстрорастущий и пользующийся наибольшим доверием сайт сообщества, где можно найти любые статьи, руководства и книги по Linux в Интернете. Миллионы людей посещают TecMint! для поиска или просмотра тысяч опубликованных статей доступны БЕСПЛАТНО для всех.

Если вам нравится то, что вы читаете, пожалуйста, купите нам кофе (или 2) в знак признательности.

Мы благодарны за вашу бесконечную поддержку.

Как использовать iperf, полное руководство

Когда вы покупаете интернет-ссылку, вы хотите увидеть, получаете ли вы то, за что платите. Если вы хотите сделать это дома, вы можете использовать множество сервисов для проверки скорости. Популярные примеры — Speedtest от Ookla, Telstra или Verizon. Однако эти методы недостаточно надежны для предприятия. Кроме того, вы можете тестировать только скорость Интернета, но не скорость на внутренних / частных каналах. Вот почему на уровне предприятия мы используем iperf (фактически iperf3), мощный и бесплатный инструмент.В этом руководстве мы увидим, как использовать iperf для надежной проверки скорости любой ссылки.

Начало работы с iperf

Что такое iperf?

Iperf — это инструмент командной строки, позволяющий тестировать пропускную способность любым удобным для вас способом. В отличие от онлайн-тестов скорости, вы должны предоставить и сервер, и клиент. Другими словами, при проведении онлайн-теста скорости вы подключаетесь к серверу в Интернете, принадлежащему провайдеру теста (например, Ookla). Затем приложение измеряет производительность сети между вами и таким сервером.Вместо этого с iperf вы должны настроить свой собственный сервер iperf. Не волнуйтесь, вам не нужно специальное оборудование, вам нужно только запустить команду из командной строки. Фактически, у вас может быть и сервер, и клиент на одном компьютере.

Преимущество использования собственного сервера — предсказуемость. Вы знаете, где находится сервер, и можете повторить тест в будущем. Это не относится к онлайн-сервисам, где они выделяют вам сервер динамически. Это означает, что вы не сможете воспроизвести тот же тест в будущем, если проведете онлайн-тест скорости.Поскольку вы размещаете сервер в любое время, вы также можете разместить его во внутренней сети и, таким образом, протестировать внутренние ссылки.

Получение iperf

Версия iperf для соболя — iperf3. Это бесплатное программное обеспечение (лицензия BSD), которое вы можете скачать с iperf.fr. В спешке? Вот быстрая ссылка на страницу загрузки. Вы найдете iperf для любой нужной операционной системы и архитектуры. В этом руководстве мы используем iperf3 в Windows (64-разрядная версия), но руководство по использованию iperf одинаково для любой ОС.

Если вы работаете в Windows, как я, вы получите сжатый ZIP-файл. Извлеките его и, если вы хотите что-то сделать быстрее, скопируйте его содержимое в C: \ Windows \ System32 . Таким образом, у вас всегда будет iperf3 в виде команды в командной строке. Если вы этого не сделаете, вам нужно будет перейти в папку, в которой находится iperf, прежде чем вы сможете дать команду.

Как использовать iperf

Когда у нас есть iperf, нам нужно научиться его использовать. Как мы упоминали выше, нам нужно запустить и сервер, и клиент. Сервер будет продолжать слушать, принимая клиентские соединения. Таким образом, это первое, что нам нужно сделать. Запустить сервер так же просто, как написать в командной строке iperf3 -s ( -s означает сервер). В первый раз, когда вы сделаете это в Windows, он спросит у вас разрешение на доступ к сети. Конечно, отметьте разрешения и нажмите Разрешить доступ .

Включите сетевой доступ для iperf.

После того, как вы включите доступ, в приглашении появится простое сообщение о том, что сервер готов принимать соединения.По умолчанию iperf3 прослушивает порт 5201.

Сервер iperf готов принимать соединения.

Теперь оставим сервер в покое. Этот сервер будет принимать все наши соединения. Однако мы сможем настроить тесты и даже пилотировать сервер из клиента iperf. Вот где настоящая сделка.

Простой тест скорости с iperf

Теперь, как использовать iperf3 для запуска простого теста скорости? Вы можете просто использовать команду iperf3 -c , конечно, заменив «» на IP-адрес вашего сервера. Однако мы хотим получить лучший тест. Таким образом, мы хотим дать TCP все время, необходимое для увеличения размера окна: лучше запустить тест еще на несколько секунд. Мы можем сделать это с помощью опции -t , за которой следует количество секунд. Это сообщит iperf3, как долго запускать тест. Обычно достаточно одной-двух минут (чтобы показать, мы будем использовать 5 секунд). Поскольку наш сервер работает на том же ПК, целевым IP-адресом будет localhost по адресу 127.0.0.1 , но это только случай этой демонстрации.

Если мы хотим знать, как использовать iperf, нам нужно знать, как анализировать вывод. Стандартный вывод представляет собой таблицу с четырьмя столбцами. Кроме того, последние две строки таблицы (после пунктирной линии) представляют итоги.

  • ID — это идентификатор операции iperf
  • Interval — временной интервал, к которому относится строка
  • Transfer — это объем данных, которыми обмениваются клиент и сервер. В конце концов, тест скорости заключается в передаче файлов и измерении того, сколько времени это заняло.
  • Пропускная способность — это измеренная полоса пропускания

Почему у нас нет единой итоговой / итоговой строки? Потому что мы хотим видеть разные характеристики отправки и получения. Фактически, в крайнем правом углу итоговых строк вы увидите пропускную способность отправителя и получателя. В нашем случае отправителем является клиент, поэтому это означает скорость загрузки. Вместо этого получатель означает скорость загрузки. В случае асимметричной полосы пропускания эти два параметра могут не всегда совпадать.

Другие крутые варианты

Пока все хорошо.Фактически, вы знаете, как использовать iperf, просто используя приведенные выше команды. Однако вы можете использовать некоторые параметры, чтобы настроить измерение по своему вкусу. Если вы хотите узнать все параметры, используйте --help . Здесь мы увидим самые полезные.

  • -P создает N параллельных подключений, полезно для подталкивания ссылок к их пределу
  • -R работает в обратном режиме: сервер отправляет, а клиент получает
  • -b указывает на ограничение пропускной способности (например 10k, 5mb, 1gb).Тест не выйдет за рамки этого значения, даже если канал имеет большую пропускную способность.
  • -J генерирует вывод в формате JSON после завершения операции, что полезно, если вы хотите использовать iperf в сценариях.

Попробуйте поэкспериментировать, комбинируя все нужные вам варианты. Вы добьетесь профессионального тестирования пропускной способности корпоративного уровня.

Заключение (и TL; DR)

Iperf3 — это мощный инструмент для выполнения настраиваемых и надежных тестов пропускной способности. Фактически, он идеально подходит для требований корпоративного уровня.Если вы хотите знать, как использовать iperf, вам понадобятся всего две основные команды.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *