Установка, настройка и использование iperf

How to perform a more recent installation of Iperf than the one included in Ubuntu / Debian / Mint ?

Tutorial for Debian / Ubuntu based distributions

Packages are manually installed via the dpkg command (Debian Package Management System). dpkg is the backend to commands like apt and aptitude, which in turn are the backend for GUI install apps like the Software Center and Synaptic.

— Ubuntu 64 bits / Debian 64 bits / Mint 64 bits

  1. sudo apt remove iperf3 libiperf0
  2. sudo apt install 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. sudo 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

— Ubuntu 32 bits / Debian 32 bits / Mint 32 bits

  1. sudo apt remove iperf3 libiperf0
  2. sudo apt install 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. sudo 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

— Remove iPerf :

  1. Remove the old version installed of iperf3 with «Ubuntu Software Center» or «Synaptic».
  2. Downoad iperf3 and libiperf0
    • Linux x86 64 bits : iperf3_3.1.3-1_amd64.deb + libiperf0_3.1.3-1_amd64.deb
    • Linux x86 32 bits : iperf3_3.1.3-1_i386.deb + libiperf0_3.1.3-1_i386.deb
  3. It is important to first install libiperf0 by double clicking on the file :
  4. You must then install iperf3 by double clicking on the file :

Установка iperf3

Чтобы пользоваться утилитой, сначала необходимо свежую версию программы. На приведенной странице представлены сборки для ОС семейства Windows от XP до Win10. Там же можно найти варианты утилиты и для других операционных систем.

Можно распаковать загруженный архив в любую папку, но лучше выбрать для этой цели системный каталог Windows. Тогда при запуске командной строки к работе с утилитой можно приступить сразу же. К примеру, открыв окно CMD, можно сразу будет написать команду iperf3.exe -c 192.168.13.10 или любую другую.

Существуют варианты утилиты в типичном оконном Windows-исполнении. Примером такой программы служит iperf3 cygwin с gui-интерфейсом. Работать с подобными приложениями неподготовленному пользователю проще. Однако они имеют ограниченный функционал и часто выдают ошибки.

Общие рекомендации

Ниже приведены общие рекомендации по использованию TTCP для измерения пропускной способности IP-пути.

Для получения значимых результатов узлы, на которых работает TTCP, должны иметь достаточно процессорной мощности относительно скорости канала. Это применимо, если скорость канала равна 45 кбит/с, а узлами являются простаивающий сервер доступа AS5300 и компьютер 700 МГц. Это неприменимо, если каналом является сеть 100baseT, а один из узлов — маршрутизатор 2600.
Cisco IOS воспринимает данные, поступающие с маршрутизаторов, иначе, чем данные, передаваемые через маршрутизатор. Несмотря на то, что в этом примере сжатие MPPC было согласовано на проверяемом канале, передаваемые маршрутизатором данные не сжимались программно, в отличие от данных, передаваемых компьютером. Поэтому пропускная способность восходящего канала была значительно выше пропускной способности нисходящего канала. При проверке производительности каналов с высокими пропускными способностями всегда следует проверять данные, передаваемые через маршрутизаторы

Для IP-путей с большим продуктом задержки в полосе пропускания * важно использовать размер TCP-окна, достаточный для заполнения канала. При использовании модемных каналов достаточно наличие окна, равного 4 КБ

Можно увеличить размер окна TCP в IOS с помощью команды ip tcp window-size. Обратитесь к соответствующей документации для систем с ОС, отличной от Cisco IOS.

Другим простым способом проверки пропускной способности модемного канала является использование программного средства с открытым исходным текстом Through-Putter . Установите это программное средство на веб-сервере за серверами доступа и попытайтесь открыть программное средство Java в браузере на клиентских компьютерах Windows. Затем можно быстро определить скорость передачи данных по модемному подключению. Эта программа проверки пропускной способности модемного канала является программным средством с открытым исходным текстом и не поддерживается Центром технической поддержки Cisco. Инструкции по установке и использованию см. в файле Readme, который предоставлен вместе с программным средством.

Code Authors

The main authors of iPerf3 are (in alphabetical order): Jon Dugan, Seth Elliott, Bruce A. Mah, Jeff Poskanzer, Kaustubh Prabhu.
Additional code contributions have come from (also in alphabetical order): Mark Ashley, Aaron Brown, Aeneas Jaißle, Susant Sahani, Bruce Simpson, Brian Tierney.

iPerf3 contains some original code from iPerf2. The authors of iPerf2 are (in alphabetical order):
Jon Dugan, John Estabrook, Jim Ferbuson, Andrew Gallatin, Mark Gates, Kevin Gibbs,
Stephen Hemminger, Nathan Jones, Feng Qin, Gerrit Renker, Ajay Tirumala, Alex Warshavsky.

Acknowledgements for iPerf1: Thanks to Mark Gates (NLANR), Alex Warshavsky (NLANR) and Justin Pietsch (University of Washington)
who were responsible for the 1.1.x releases of Iperf.
For iPerf 1.7, we would like to thank Bill Cerveny (Internet2), Micheal Lambert (PSC), Dale Finkelson (UNL)
and Matthew Zekauskas (Internet2) for help in getting access to IPv6 networks / machines.
Special thanks to Matthew Zekauskas (Internet2) for helping out in the FreeBSD implementation.
Also, thanks to Kraemer Oliver (Sony) for providing an independent implementation of IPv6
version of Iperf, which provided a useful comparison for testing our features.

Thanks to ESnet for re-rolling iperf from the ground up. iPerf3 is a killer piece of software.

Thanks to
for hosting iPerf.fr.

Проверка с помощью интернет ресурсов

Иногда хочется проверить — действительно ли провайдер предоставляет обещанные мегабиты. Он же может написать в документе одно, а на самом деле скорость будет гораздо меньше. Может, днем и все нормально, а вот вечером все начнут качать фильмы с торрентов, смотреть онлайн сериалы и играть в онлайн игры. Вот в такой важный момент и начинает тормозить интернет.

Проверить его скорость можно с помощью «Speedtest» от Ookla. Есть другие, но это самый популярный. Вначале проводится ping-тестирование для определения скорости отклика сервера. После этого измеряется, с какой скоростью Ваш компьютер может передавать файлы в интернет и загружать файлы из интернета.

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

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

Iperf – утилита для тестирования пропускной способности сети.

Наткнулся на интересную статью про утилитку для тестирования пропускной способности сети. Имеется одно приложение, крайне зависимое от всё этой фигни, и каким то образом надо протестить и найти слабое место. Для начала просто опубликую статью, а потом сам напишу небольшой обзор, с тестом. Понеслась.

Как поступить, если необходимо произвести нагрузочное тестирование канала связи, маршрутизатора и при этом остаться при своих деньгах? Не знаете? Спросите меня :). Выход есть.
Заходим на сайт http://dast.nlanr.net/projects/Iperf/ (для линуксоидов http://www.netperf.org/) и скачиваем утилиту iperf (для Linux качаем netperf). Сразу замечу, что обе утилиты используют один и тот же протокол связи, и поэтому вполне возможно запустив сервер под Linux, генерировать трафик клиентом под Windows.

Внимание! Утилита работает под Windows 2000 и выше. Возможно, она запустится и под NT, но достоверных сведений об этом не обнаружено, а сам я не проверял ввиду отсутствия доступа к последней

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

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

Теперь примеры.

Проверка на TCP трафике.

Сервер

Клиент

Здесь server_host – адрес машины, на которой запущен iperf в режиме сервера. Вот, собственно и всё. Сначала запускаем сервер, затем клиент, и в течение 10 секунд между ними будет идти трафик, после чего соединение будет разорвано и выведена статистика.

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

Не менее полезным будет ключик -i nsec. Здесь nsec соответствует периоду (в секундах, естественно), через который будет выводиться статистика.

Проверка на UDP трафике.

Для запуска iperf в режиме UDP необходимо добавить и клиенту и серверу ключи -u.

Протокол UDP более “тупой”, что даёт нам как некоторые преимущества, так и недостатки. Впрочем, для целей тестирования, недостатки опять-таки превращаются в преимущества.

Итак, что мы можем:

  • менять длину передаваемых пакетов
  • менять полосу передаваемого трафика
  • работать на односторонних каналах
  • использовать iperf без запуска сервера, если канал не сквозной, а необходимо просто генерировать заданный трафик для нагрузки

Для изменения длины пакета используется ключ -l length. Следует только помнить, что при length=0 реальная длина Ethernet-фрейма будет составлять 54 байта и делать в своих расчётах соответствующую поправку.

Для изменения полосы трафика используется ключ -b bandwidth. Параметр bandwidth выражается в битах в секунду и может содержать десятичную точку и суффиксы k и M, соответствующие приставкам кило- и мега-.

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

Запуск нескольких потоков трафика.

Мы можем запустить несколько экземпляров клиентов и серверов на одной и той же машине. Для развязки трафика используется назначение разных портов при помощи параметра -p port его значение на клиенте и соответствую щем сервере должно быть одинаковым (по умолчанию, он имеет значение 5001).

Практика показала, что при запуске нескольких клиентов на одной машине, iperf захватывает практически все ресурсы ЦП, из-за чего в некоторых потоках возможно пропадание пакетов. Здесь, видимо, имеется некая ошибка в коде, вызывающая некорректную работу при context switching. Всё вышеуказанное справедливо для iperf. Netperf работает под Linux вполне корректно.

В файлах помощи вы найдёте ещё параметр -S, позволяющий устанавливать значение Type Of Servise (TOS) в IP заголовке. Вынужден вас разочаровать, под Windows это не работает. (Что характерно, я не смог установить это поле и в стандартном ping для Windows).

Взято с берлоги инженера

Change between iPerf 2.0, iPerf 3.0 and iPerf 3.1

  • iPerf2 features currently supported by iPerf3 :
    • TCP and UDP tests
    • Set port (-p)
    • Setting TCP options: No delay, MSS, etc.
    • Setting UDP bandwidth (-b)
    • Setting socket buffer size (-w)
    • Reporting intervals (-i)
    • Setting the iPerf buffer (-l)
    • Bind to specific interfaces (-B)
    • IPv6 tests (-6)
    • Number of bytes to transmit (-n)
    • Length of test (-t)
    • Parallel streams (-P)
    • Setting DSCP/TOS bit vectors (-S)
    • Change number output format (-f)
  • New Features in iPerf 3.0 :
    • Dynamic server (client/server parameter exchange) – Most server options from iPerf2 can now be dynamically set by the client
    • Client/server results exchange
    • A iPerf3 server accepts a single client simultaneously (multiple clients simultaneously for iPerf2)
    • iPerf API (libiperf) – Provides an easy way to use, customize and extend iPerf functionality
    • -R, Reverse test mode – Server sends, client receives
    • -O, —omit N : omit the first n seconds (to ignore TCP slowstart)
    • -b, —bandwidth n for TCP (only UDP for IPERF 2): Set target bandwidth to n bits/sec (default 1 Mbit/sec for UDP, unlimited for TCP).
    • -V, —verbose : more detailed output than before
    • -J, —json : output in JSON format
    • -Z, —zerocopy : use a ‘zero copy’ sendfile() method of sending data. This uses much less CPU.
    • -T, —title str : prefix every output line with this string
    • -F, —file name : xmit/recv the specified file
    • -A, —affinity n/n,m : set CPU affinity (cores are numbered from 0 — Linux and FreeBSD only)
    • -k, —blockcount # : number of blocks (packets) to transmit (instead of -t or -n)
    • -4, —version4 : only use IPv4
    • -6, —version6 : only use IPv6
    • -L, —flowlabel : set IPv6 flow label (Linux only)
    • -C, —linux-congestion : set congestion control algorithm (Linux and FreeBSD only) (-Z in iPerf2)
    • -d, —debug : emit debugging output. Primarily (perhaps exclusively) of use to developers.
    • -s, —server : iPerf2 can handle multiple client requests. iPerf3 will only allow one iperf connection at a time.
  • New Features in iPerf 3.1 :
    • -I, —pidfile file write a file with the process ID, most useful when running as a daemon.
    • —cport : Specify the client-side port.
    • —sctp use SCTP rather than TCP (Linux, FreeBSD and Solaris).
    • —udp-counters-64bit : Support very long-running UDP tests, which could cause a counter to overflow
    • —logfile file : send output to a log file.
  • iPerf2 Features Not Supported by iPerf3 :
    • Bidirectional testing (-d / -r)
    • Data transmitted from stdin (-I)
    • TTL : time-to-live, for multicast (-T)
    • Exclude C(connection) D(data) M(multicast) S(settings) V(server) reports (-x)
    • Report as a Comma-Separated Values (-y)
    • Compatibility mode allows for use with older version of iPerf (-C)

Перед началом работы

Предварительные условия

Ознакомление с этим документом требует наличия следующих знаний:

  • Служебная программа TTCP нуждается в наличии ПО Cisco IOS версии 11.2 или выше и набора функций IP Plus (образы is-) или Service Provider (образы p-).

    Примечание. Команда ttcp — это скрытая, неподдерживаемая команда привилегированного режима. Поэтому ее доступность зависит от выпуска ПО Cisco IOS, то есть в некоторых выпусках она может отсутствовать. На некоторых платформах для выполнения этой операции требуется наличие функций Cisco IOS из набора для Enterprise Edition.

  • Клиентскую часть программы TTCP можно загрузить по адресу http://renoir.csc.ncsu.edu/ttcp/; загрузка ttcpw.zip для клиентов Windows.

Используемые компоненты

Настоящий документ не имеет жесткой привязки к каким-либо конкретным версиям программного обеспечения и оборудования.

Установка ipref

Для начала утилиту iperf следует скачать. Она не входит в сборки Windows, не является частью ОС. Загружают iperf отдельно. Можно скачать здесь, предварительно выбрав требуемую разрядность ОС:

Дожидаемся завершения загрузки iperf. Проще всего сразу скачивать файл инсталляции на системный диск. Казалось бы, можно запустить утилиту и пользоваться. Но нет. Ничего не получится. Следует воспользоваться Командной строкой.

Алгоритм следующий:

Запустить Командную строку (в Windows 10 ввести «cmd» в поиске).

Ввести «cd c:/» (если утилита находится на данном диске).

Далее, для использования в качестве клиента, вводится сочетание: «iperf -c -t 30 -i 10». Здесь «t» задает время теста, а «i» – периодичность обновления данных.

Если будет архивный файл дистрибутива iperf, то его перед установкой потребуется распаковать. Иногда необходимо запускать утилиту под учетной записью Администратора. Список доступных команд появится после ввода «dir». Обязательно скачивается наиболее свежая версия ПО. Выбрать «двойку» или «тройку» iperf – решать самому пользователю.

Как iperf3 работает в pfSense

В » Диагностика »Мы можем запускать как клиент iperf3, так и сервер. Если мы запустим клиент, на нашем компьютере нам придется настроить сервер iperf3, и наоборот, если мы настроим сервер iperf3 в pfSense, на нашем компьютере нам придется настроить iperf3 в режиме клиента для выполнения всех тестов производительности. .

Оба инструмента, как клиент, так и сервер, доступны из меню «Диагностика», но позже из любого из них мы можем получить доступ к клиенту и серверу.

Клиент

В меню графического интерфейса пользователя у нас будут основные параметры конфигурации, которые есть у клиента iperf3:

  • IP-адрес сервера
  • TCP или UDP-порт сервера
  • Протокол TCP или UDP
  • Формат вывода, бит / сек или байт / сек.

И другие параметры, связанные с буферами, которые мы можем оставить пустыми, чтобы они принимали значения по умолчанию. После того, как мы ввели все данные для уже запущенного сервера iperf3, нажмите «Запустить клиент iperf», и будет запущен тест производительности.

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

сервер

В меню графического пользовательского интерфейса у нас будут основные параметры конфигурации, которые есть у сервера iperf3:

  • TCP или UDP-порт сервера
  • Формат вывода, бит / сек или байт / сек

Очень важной деталью является то, что сервер iperf3 определит, отправляем ли мы трафик TCP или UDP, и будет действовать соответствующим образом, по умолчанию порт 5201 используется, как обычно в iperf3. Другие параметры, доступные в разделе сервера, — это «Интервал», который будет указывать полосу пропускания, джиттер и потери в реальном времени

После того, как мы настроили эти три параметра, мы нажимаем «Запустить iperf Server» и можем запускать тесты производительности с нашего клиентского ПК.

Важной деталью является то, что если сервер или клиент iperf3 активирован, он будет отображаться в главном меню в статусе различных служб. Желательно не оставлять iperf3 включенным, если мы не собираемся проводить тесты производительности, как это есть прямо сейчас:. В клиенте iperf3, который мы запускаем на ПК, будь то с Windows or Linux операционной системы, мы должны поставить следующую команду:

В клиенте iperf3, который мы запускаем на ПК, будь то с Windows or Linux операционной системы, мы должны поставить следующую команду:

  • -c 192.168.1.1: работает в режиме клиента с указанным IP.
  • -P 50: мы отправляем всего 50 TCP-соединений
  • -p 5000: мы используем порт 5000, по умолчанию 5201
  • -fg: показываем скорость в Гбит / с
  • -t 5: запускаем тест на 5 секунд.

В зависимости от параметров, которые мы хотим настроить, мы будем изменять значения аргументов. Мы надеемся, что с помощью этого небольшого руководства вы узнаете, как максимально эффективно использовать iperf3 в pfSense, и проверить скорость в локальной сети и при обмене данными между vlan.

Tuning a TCP connection

bandwidth delay product

Note that many OSes and hosts have upper limits on the TCP window size.
These may be as low as 64 KB, or as high as several MB. iPerf tries to detect when these occur and give a warning that the actual and requested window sizes are
not equal (as below, though that is due to rounding in IRIX).
For more information on TCP window sizes, see the LaFibre.info.
Here is an example session, between node1 in Illinois and node2 in North Carolina. These are connected via the vBNS backbone and a 45 Mbit/sec DS3 link.
Notice we improve bandwidth performance by a factor of 3 using proper TCP window sizes.
Use the adaptive window sizes feature on platforms which allow setting window sizes in the granularity of bytes.

Multicast

To test multicast, run several servers with the bind option (-B, —bind) set
to the multicast group address. Run the client, connecting to the multicast
group address and setting the TTL (-T, —ttl) as needed. Unlike normal TCP and
UDP tests, multicast servers may be started after the client. In that case,
datagrams sent before the server started show up as losses in the first periodic
report (61 datagrams on arno below).

Start multiple clients or servers as explained above, sending data to the same multicast server.
(If you have multiple servers listening on the multicast address, each of the servers will be getting the data)

How to Install iPerf on Windows?

You can download iPerf 3.1.3 for Windows from the following link https://iperf.fr/iperf-download.php. If you want to use the iPerf 2.0 – you can get it here. You do not need to install the tool, it is enough to download the iPerf archive and extract it to a local directory on the drive. There are only two files in the archive: and .

There are several iPerf GUI implementations for Windows. For example, Iperf3-Cygwin-GUI or jperf.

The jperf is written on Java (in order to run jperf, the Java VM must be installed on the computer). In addition to graphical form for the CLI interface, Jperf can build graphs bandwidth charts of the communication channel in real time.

To use it, just specify the iPerf server address and run the scan.

There is a separate iPerfAutomate module in the PowerShell Script Gallery that can be used to get network performance metrics from your PowerShell scripts. You can install the module with the command:

Установка iperf на CentOS 8

Ранее, я так же установил CentOS 8 в тестовой среде. Хочу отметить, что если вы попытаетесь добавить репозиторий epel-release командой:

yum install epel-release или yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y

То он успешно установится, но когда вы попытаетесь сделать поиск iperf по нему, то обнаружите, что восьмая ветка не содержит данной утилиты.

dnf repository-packages epel list | grep -i iperf

Как я и писал выше не желательно устанавливать epel 7 и 8 версии репозитория, я лично в такой ситуации просто выхожу подобным образом. Я открываю сайт https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/ и ищу нужный мне пакет, копирую на нужный мне прямую ссылку.

Далее я устанавливаю в CentOS 8 пакет wget, для этого выполняем:

yum install wget -y

Далее скачиваем пакет, ссылку на который мы заранее выяснили.

wget https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/i/iperf-2.0.13-1.el7.x86_64.rpm

Далее производим установку iperf2 в системе, через выполнение команды:

rpm -ivh iperf-2.0.13-1.el7.x86_64.rpm

Так же для CentOS 8 рекомендуется включить репозиторий PowerTools, поскольку пакеты EPEL могут зависеть от пакетов из него

dnf config-manager —set-enabled PowerTools

iPerf Versions: iPerf2 vs iPerf3

IPerf is a cross-platform tool and doesn’t require installation, just copy and run it on two devices, between which you want to test the network throughput.

IPerf works in a server-client mode. On the first device, the iPerf starts in server mode (it is waiting for traffic from the iPerf client). On the second computer, the iPerf starts in client mode, generates TCP or UDP traffic and measures the maximum data transfer rate.

There are currently two independent iPerf branches developing in parallel: iPerf2 and iPerf3. The functionality of these tools is mostly compatible, but they use different network ports by default. In iPerf1/2 it is 5001, in iPerf3 it is 5201.

iPerf2 is preferably used for parallel threads, bidirectional tests, and this version is officially supported on Windows OS;

iPerf3 has better implementation of high-speed UDP testing. IPerf3 code is significantly smaller and better optimized.

The remaining differences are not so significant, so no need to use a specific version of iPerf (even the CLI parameters are the same). In this article we will use the iperf3.

The iPerf3 is not officially supported for Windows platform, but it works quite fine. I did not notice any obvious bugs. You can send your bug report to the https://github.com/esnet/iperf.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: