Iperf: установка и настройка. как пользоваться iperf для теста скорости сети

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

Содержание

  • 1 Где скачать:
  • 2 Как пользоваться:
  • 3 Дополнительные ключи:

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

Попалась мне на глаза отличная утилитка, с помощью которой это очень легко можно сделать. Утилитка называется Iperf.

Где скачать:

FreeBSD: Утилита есть в портах.

#cd /usr/ports/benchmarks/iperf
#make install clean

Windows: http://iperf.ru/wp-content/uploads/2009/07/jperf-2.0.0.zip

Как пользоваться:

Утилиту запускаем на двух разных узлах. На первом (назовем его сервер) с ключом -s, на втором (клиент) с ключом -c , где в качестве IP будет IP-адрес сервера.

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

На узле 1 (192.168.1.10) запускаем:

iperf -s

На узле 2 запускаем:

iperf -c 192.168.1.10

Программа выдает отчёт, передавая TCP данные в течении 10 секунд на порт 5001.

Или вот, нестандартный пример:

iperf.exe -s -u -i1 -p 65012

Запустили серверную часть (ключ -s), готовимся принимать UDP датаграммы (ключ -u), на порт 65012 (ключ -p), с выводом отчета раз в секунду (ключ -i).

iperf -u -c 192.168.1.10 -n 100m -p 65012

Запускаем клиентскую часть (ключ -c), по протоколу UDP (ключ -u), данные на узел 192.168.1.10, объем данных 100 Мб (ключ -n) на порт 65012 (ключ -p)

Как видим, пропускная способность моего канала около мегабита (слава ipfw!)

Дополнительные ключи:

  • -f, –format [kmKM] формат отчёта: Kbits, Mbits, KBytes, MBytes
  • -i, –interval n пауза секунд между периодическими отчётами
  • -l, –len n[KM] задёт длину на чтение/запись буфера (по умолчанию 8 KB)
  • -m, –print_mss показать максимальный размер сегмента (MTU – TCP/IP в заголовке)
  • -o, –output Запись отчёта в указанный файл
  • -p, –port n задаёт порт к которому конектится или на котором вешать сервер (по умолчанию 5001)
  • -u, –udp использовать UDP, а не TCP
  • -w, –window n[KM] TCP размер окна (размер буфера сокета)
  • -B, –bind привязки к хосту, интерфейсу или групповому адресу
  • -C, –compatibility для использования с более старыми версиями не шлёт экстра сообщения
  • -M, –mss n задать TCP максимальный размер сегмента (MTU – 40 байт)
  • -N, –nodelay задать TCP без задержки, отключение алгоритма Нэгла
  • -v, –version напечатать информацию о версии и выйти
  • -V, –IPv6Version Юзать IPv6
  • -x, –reportexclude [CDMSV] исключить C(соединение), D(данные), M(Multicast) S(настройки) V(сервер) в отчетности
  • -y, –reportstyle C|c если установлено в C или c Отчёт будет в результатах CSV (значения, разделенные запятыми)
  • -s, –server запустить в режиме сервера
  • -U, –single_udp работать в однопоточном режиме UDP (для сервера)
  • -D, –daemon запустить сервер как демон (для сервера)
  • -b, –bandwidth n[KM] установить пропускную способность в бит/сек (по умолчанию 1 Мбит/сек.) Это установка требует UDP (-u) (клиент).
  • -c, –client запустить в режиме клиента, при подключении к

Источник: https://litl-admin.ru/testirovanie/testirovanie-skorosti-seti-iperf.html

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

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

Как поступить, если необходимо произвести нагрузочное тестирование канала связи, маршрутизатора и при этом остаться при своих деньгах? Не знаете? Спросите меня :). Выход есть.

Заходим на сайт http://dast.nlanr.net/projects/Iperf/ (для линуксоидов http://www.

netperf.org/) и скачиваем утилиту iperf (для Linux качаем netperf). Сразу замечу, что обе утилиты используют один и тот же протокол связи, и поэтому вполне возможно запустив сервер под Linux, генерировать трафик клиентом под Windows.

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

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

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

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

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

Сервер

iperf -s

Клиент

iperf -c server_host

Здесь 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).

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

Источник: http://system-administrators.info/?p=552

[CentOS] Установка iperf3 | Сисодминиум

Привет, %username%! Иногда возникают ситуации, в которых необходимо протестировать качество связи между двумя серверами находящимися на разных площадках. Для таких целей есть отличная утилита под названием iperf. Её мы и будем ставить, а так же посмотрим как её использовать.

iperf — кроссплатформенная консольная клиент-серверная программа — генератор TCP и UDP трафика для тестирования пропускной способности сети.

Iperf3 — кроссплатформенная консольная клиент-серверная программа — генератор TCP, UDP и SCTP трафика для тестирования пропускной способности сети.

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

Возможности

Утилита позволяет генерировать трафик различного типа для анализа пропускной способности сети. Поддерживается многопоточная работа (в версии 2 посредством запуска на разных портах, в версии 3 — параметром у клиента).

По умолчанию тест выполняется в направлении от клиента к серверу.

Чтобы проводить двунаправленное тестирование со стороны клиента, необходимо использовать ключ -r (или -d для одновременной передачи пакетов в обоих направлениях) в версии 2 и ключ -R в версии 3.

Базовые параметры

Для тестирования производительности сети в течение 10 секунд: На сервере выполняется команда:

На клиенте:

Применение

Порт по умолчанию для iperf v1/v2 5001, для iperf3 — 5201

iperf

Запуск сервера в UDP-режиме с выводом результатов раз в секунду, на порту 65005

1 iperf -u -s -i1 -p 65005

Тестирование UDP с длинной 100 байт и скоростью 20 Кбит/с в течение 180 секунд (имитация VoIP трафика, запускать нужно в обе стороны)

1 iperf -u -c serverhost -l100 -b20k -t180

Передать 10 мегабайт данных на порт 65005

1 iperf -n 10m -p 65005 -c serverhost

Вывод:

[ ID] Interval Transfer Bandwidth[ 3] 0.0- 12.0 sec 10.0 MBytes 6.97 Mbits/sec

iperf3

Запуск сервера на порту по умолчанию

В отличие от оригинального iperf, сервер слушает только tcp-порт, выбор протокола осуществляется клиентом. Получить 2 мегабайта данных с сервера по UDP с установленным лимитом 100 мегабит/сек

1 iperf3 -n 2M -c serverhost -u -R -b 100M

Вывод на стороне клиента:

Connecting to host serverhost, port 5201 Reverse mode, remote host serverhost is sending[ 4] local x.x.x.120 port 57976 connected to y.y.y.20 port 5201[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams[ 4] 0.00-1.00 sec 1.30 MBytes 10.9 Mbits/sec 1.042 ms 1248/1414 (88%)[ 4] 1.00-1.58 sec 720 KBytes 10.2 Mbits/sec 1.219 ms 820/910 (90%) — — — — — — — — — — — — — — — — — — — — — — — — -[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams[ 4] 0.00-1.58 sec 21.6 MBytes 115 Mbits/sec 1.119 ms 2342/2636 (89%)[ 4] Sent 2636 datagrams

То есть, чтобы клиент получил 2 мегабайта, серверу пришлось отправить 21.6 мегабайта данных, потери составили 89%. При этом, сервер не очень точно выдержал лимит скорости передачи, который составил 115 мегабит/сек.

На этом всё!

Источник: https://jtprog.ru/iperf3/

Тестируем скорость: iperf

Iperf это клиент-серверная утилита которая позволять производить замеры пропускной способности канала.

Скорость измеряется от клиента к серверу, т.е. если вы на своем компьютере запустили iperf в режиме «клиент», то результатом будет «исходящая» скорость. Чтобы измерить входящую, необходимо запустить iperf в режиме сервер, либо воспользоваться ключиком -d для измерения скорость входящей+исходящей. Важно отметить, что генерирует трафик только клиентская часть.

Ключи и опции iperf.

Общие:
-f, —format, [kmKM] формат отчёта: Kbits, Mbits, KBytes, MBytes

-i, —interval n, пауза секунд между периодическими отчётами

-l, —len n[KM], задёт длину на чтение/запись буфера (по умолчанию 8 KB)

-m, —print_mss, показать максимальный размер сегмента (MTU — TCP/IP в заголовке)

-o, —output , Запись отчёта в указанный файл

-p, —port n, задаёт порт к которому конектится или на котором вешать сервер (по умолчанию 5001)

-u, —udp, использовать UDP, а не TCP

-w, —window n[KM], TCP размер окна (размер буфера сокета)

Читайте также:  Aida64 как пользоваться. скачать программу. aida64 (everest) как узнать видеокарту, определить материнскую плату, посмотреть температуру. программа для сбора информации о компьютере

-B, —bind , привязки к хосту, интерфейсу или групповому адресу

-C, —compatibility, для использования с более старыми версиями не шлёт екстра сообщения

-M, —mss n, задать TCP максимальный размер сегмента (MTU — 40 байт)

-N, —nodelay, задать TCP без задержки, отключение алгоритма Нэгла

-v, —version, напечатать информацию о версии и выйти

-V, —IPv6Version, Использовать IPv6

-x, —reportexclude, [CDMSV] исключить C(соединение), D(данные), M(Multicast) S(настройки)
V(сервер) в отчетности

-y, —reportstyle C|c, если установлено в C или c Отчёт будет в результатах CSV (значения, разделенные запятыми)

SERVER
-s, —server, запустить в режиме сервера

-U, —single_udp, работать в однопоточном режиме UDP

-D, —daemon, запустить сервер как демон

CLIENT
-b, —bandwidth n[KM], установить пропускную способность в бит/сек (по умолчанию 1 Мбит/сек.). Эта установка требует UDP (-u).

-c, —client , запустить в режиме клиента, при подключении к<\p>

-d, —dualtest, двунаправленный тест одновременно

-n, —num n[KM], количество байт для передачи (вместо -t)

-r, —tradeoff, У двунаправленный тест индивидуально

-t, —time n, время передачи в секундах (по умолчанию 10 секунд)

-F, —fileinput , читать отсылаемый контент серверу из файла

-I, —stdin, самому писать что отдавать серверу

-L, —listenport n, порт клиента двунаправленный

-P, —parallel n, число параллельных потоков клиента для запуска

-T, —ttl n, время жизни, для multicast (по умолчанию 1)

-Z, —linux-congestion , алгоритм управления перегрузками TCP (Linux только)

Методика тестирования принятая в ТТК

Тестирование качества услуг, предоставляемых на IP/MPLS ОПЕРАТОРА СВЯЗИ, осуществляется с помощью утилит iperf (измерение пропускной способности и вариации задержки) и ping (измерение сквозной задержки). В момент проведения теста услуга должна быть освобождёна от «полезной» нагрузки.

Для проведения процедуры тестирования к портам услуги подключаются персональные компьютеры (ноутбуки). Для тестирования услуг со скоростями до 45Мбс возможно использование ПК с ОС Windows не ниже XP (при этом должны быть отключены все сервисы влияющие на работу стека TCP/IP в ОС). При тестировании услуг со скоростями до 100Мбс необходимо использовать ПК с Unix-образной ОС.

Тестирование услуг свыше 100Мбс проводиться аппаратным тестером каналов с Ethernet окончаниями.

Тестирование сквозной задержки проводиться с помощью утилиты ping (ping.exe), с помощью которой с одного ПК, подключенного к услуге, на другой в течении 15ти минут посылаются ICMP запросы. Результатом выполнения теста является сквозная задержка указанная в последних строках вывода команды ping.

Тестирование вариации задержки проводиться с помощью утилиты iperf (iperf.exe). В данном тесте один из ПК, подключенных к услуге, являетс
я сервером (iperf запускается с параметрами –s –u –l 100), второй – клиентом (iperf запускается с параметрами –l 100 –c -b -t 900). Результатом теста является значение вариации задержки, указанное в выводе программы iperf-сервер.

Тестирование процента потерь проводиться с помощью утилиты iperf (iperf.exe). В данном тесте один из ПК, подключенных к услуге, является сервером (iperf запускается с параметрами –s –u –l 1472), второй – клиентом (iperf запускается с параметрами –l 1472 –c -b -t 900). Результатом теста является значение процента потерь, указанное в выводе программы iperf-сервер.

iperf -s -u -l 1472

iperf -l 1472 -c 192.168.1.1 -b 64M -u -t 900

Тестирование пропускной способности услуги проводиться с помощью утилиты iperf (iperf.exe). В данном тесте один из ПК, подключенных к услуге, является сервером (iperf запускается с параметрами –s –l 1472), второй – клиентом (iperf запускается с параметрами –l 1472 –c -t 900). Результатом теста является значение пропускной способности, указанное в выводе программы iperf-сервер.

iperf -s -l 1472

iperf -l 1472 -c 192.168.1.1 -t 900

Источник: https://andre.hwt.ru/?p=36

iperf в Debian — тест скорости сети

Утилита iperf используется для измерения пропускной способности сети. С помощью iperf можно тестировать пропускную способность как протокола TCP, так и протокола UDP. Для осуществления тестирования пользователь должен запустить как серверную часть (для приема и отбрасывания трафика), так и клиентскую (для генерирования трафика). Мы будем говорить об iperf версии 2 в Debian Linux.

Таким образом утилита iperf позволяет загрузить канал между клиентом и сервером на полную и посмотреть его максимальную пропускную способность в момент тестирования.

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

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

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

Установка утилиты iperf в Debian

aptitude install iperf

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

iperf -s

После выполнения команды сервер iperf будет слушать на всех сетевых интерфейсах на порте 5001.

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

iperf -s -D

Однако в таком случае, как было сказано выше, iperf будет слушать на всех интерфейсах. Лучшим решением будет запустить сервер на определенном адресе:

iperf -s -D -B ip.ad.dre.ss

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

iperf -c

После выполнения этой команды iperf инициализирует соединение на указанный адрес (ip-адрес или доменное имя) на порт 5001 и начнется тестирование.

Протокол UDP

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

iperf -u -s -D -B ip.ad.dre.ss

и

iperf -u -c

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

$ iperf -c 192.168.0.2 -t 60
————————————————————
Client connecting to 192.168.0.2, TCP port 5001
TCP window size: 129 KByte (default)
————————————————————
[ 4] local 192.168.0.30 port 49333 connected with 192.168.0.2 port 5001
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-60.0 sec 1.36 GBytes 195 Mbits/sec

Общие параметры

-f, —format — задает в каких единицах будет выдан результат: килобиты (k), мегабиты (m), килобайты (K), мегабайты (M).
-i, —interval n — задает паузу в n секунд между периодическими сообщениями о пропускной способности.

-l, —len n[KM] — устанавливает длину буфера чтения/записи в n (по умолчанию, 8 килобайт).
-o, —output — вывести отчет или сообщение об ошибке в указанный файл.
-p, —port n — использовать порт n (по умолчанию, 5001) на сервере на котором слушать/к которому подключаться.

-u, —udp — использовать протокол UDP вместо TCP.
-w, —window n[KM] — размер TCP окна.
-B, —bind — привязка к хосту, интерфейсу или мультикастовому адресу.
-C, —compatibility — для совместимости с более старыми версиями.

-M, —mss n — задает максимальный размер сегмента TCP (MTU — 40 байт).
-N, —nodelay — включает TCP no delay (отключает алгоритм Нагла).
-v, —version — отобразить информацию о версии и выйти.
-V, —IPv6Version — использовать IPv6.

-x, —reportexclude — убрать часть информации из отчета: C(connection), D(data), M(multicast), S(settings), V(server).
-y, —reportstyle C|c — вывести данные в формате CSV.

Параметры, относящиеся к серверу

-s, —server — запустить в режиме сервера.
-U, —single_udp — запустить в однопоточном режиме UDP.
-D, —daemon — запустить сервер в качестве демона.

Параметры, относящиеся к клиенту

-b, —bandwidth n[KM] — установить целевую пропускную способность в n бит/сек (по умолчанию, 1 мегабит в секунду).Этот параметр требует, чтобы использовался UDP (-u).
-c, —client — запуск в режиме клиента с подключением к

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

Вывести результаты в килобайтах:

$ iperf -c 192.168.0.2 -f K
————————————————————
Client connecting to 192.168.0.2, TCP port 5001
TCP window size: 129 KByte (default)
————————————————————
[ 4] local 192.168.0.30 port 58252 connected with 192.168.0.2 port 5001
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-10.0 sec 173440 KBytes 17315 KBytes/sec

Передавать данные в течение 20 секунд и отображать результаты теста скорости сети каждые 5 секунд:

Источник: http://blog.debian-help.ru/2016/01/iperf-v-debian-test-skorosti-seti

Как протестировать скорость сети, измеряем ширину канала Интернет

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

Была найдена методика тестирования рекомендованная ЗАО «ТрансТелеКом»  как раз для тестирования емкости предоставленного порта.

Для тестирования берется бесплатная программа iperf которая умеет нагружать канал по полной генерируя необходимое количество трафика.

Для работы необходимо запустить ее на одном конце в режиме сервера, а с другого конца как клиентом измерять скорость.

Судя по всему разработчики забросили дальнейшее развитие программы но тем не менее функционала ее вполне достаточно для тестирования скорости сети.

Знание английского при работе с программой приветствуется, но на всякий случай переведу краткую информацию по ключам:
iperf –help – Показать подсказку
Usage: iperf [-s|-c host] [options] Использование –S (Сервер) –С IP адрес хоста(Клиент)
iperf [-h|—help] [-v|—version] посмотреть помощь

Client/Server:
-f, —format [kmKM] format to report: Kbits, Mbits, KBytes, Mbytes В каком формате показывать скорость
-i, —interval # seconds between periodic bandwidth reports – с какими интервалами отображать промежуточные результаты
-l, —len #[KM] length of buffer to read or write (default 8 KB) — размер буфера (можно не менять)
-m, —print_mss print TCP maximum segment size (MTU — TCP/IP header) — показывать инфрмацию по пакетам
-p, —port # server port to listen on/connect to порт на котором сервер будет принимать соединения а клиент соединятся (по умолчанию 5001)
-u, —udp use UDP rather than TCP — использовать UDP вместо TCP
-w, —window #[KM] TCP window size (socket buffer size) — размер окна TCP
-B, —bind bind to , an interface or multicast address — для сервера, если несколько интерфейсов указывает на каком начинать принимать трафик
-C, —compatibility for use with older versions does not sent extra msgs — режим совместимости со старыми версиями( не интересен)
-M, —mss # set TCP maximum segment size (MTU — 40 bytes) — позволяет изменить MSS
-N, —nodelay set TCP no delay, disabling Nagle's Algorithm – меняет опции TCP (тоже трогаем)
-V, —IPv6Version Set the domain to IPv6 – использовать IP версии 6 (пока не актуально)

Server specific: Опции для сервера
-s, —server run in server mode — запустить как сервер и отображать всю информацию на экран
-D, —daemon run the server as a daemon — запустить как сервер и не отображать информацию

Client specific: Опции клиента
-b, —bandwidth #[KM] for UDP, bandwidth to send at in bits/sec (default 1 Mbit/sec, implies -u) — используемая полоса для UDP (По умолчанию 1Mbit/sec)
-c, —client run in client mode, connecting to — запустить как клиент и соединится на IP
-d, —dualtest Do a bidirectional test simultaneously — тестировать линию в обе стороны
-n, —num #[KM] number of bytes to transmit (instead of -t) — установить предел для передаваемого трафика
-r, —tradeoff Do a bidirectional test individually — не делать двунаправленное тестирование
-t, —time # time in seconds to transmit for (default 10 secs) — тестировать и усреднять по времени
-F, —fileinput input the data to be transmitted from a file — не генерирует трафик а передает готовый файл
-I, —stdin input the data to be transmitted from stdin
-L, —listenport # port to recieve bidirectional tests back on — порт на котором клиент будет принимать двунаправленный трафик
-P, —parallel # number of parallel client threads to run — запустит параллельно несколько потоков
-T, —ttl # time-to-live, for multicast (default 1) – время жизни пакета (лучше не трогать)

Читайте также:  Qgis + postgis + postgresql на centos. настройка хранения данных qgis на сервере баз данных

Miscellaneous:
-h, —help print this message and quit
-v, —version print version information and quit

[KM] Indicates options that support a K or M suffix for kilo- or mega-

The TCP window size option can be set by the environment variable TCP_WINDOW_SIZE. Most other options can be set by an environment variable

IPERF_, such as IPERF_BANDWIDTH.

И так, как я уже говорил iperf работает в двух режимах: клиентском и серверном. Программа запущенная в серверном режиме на одном конце сети будет ожидать запуска клиентского варианта на другом конце.

Клиентская программа инициирует соединение и начинает передачу трафика для тестирования.

Будет ли запускаться программа в режиме сервера или клиента зависит от того используется ли ключ -s или -c соответственно.

Кстати для FreeBSD iperf лежит в портах /ports/benchmark/iperf
Для прочих *nix-ов можно взять на sf.net (http://sourceforge.net/project/showfiles.php?group_id=128336)
Для Windows выкладываю тут.

Кстати, для выбора UDP протокола служит ключ -u иначе используется TCP протокол.

А теперь практика: Как произвести нагрузочное тестирование канала связи, маршрутизатора.

Методика тестирования требует соблюдения некоторых условий:

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

Проведем тестирование 2-х машин . В качестве подопытных будут выступать машины w2k3srvr 192.168.0.210 (сервер) и Home 192.168.0.120 (клиент).

На серверной стороне выполняется команда

iperf -s -p 1111

после этого на клиентской стороне выполняется команда

iperf -c 192.168.0.210 —format k -m -p 1111 -t 180

Отчет со стороны сервера:

iperf -s -p 1111 ———————————————————— Server listening on TCP port 1111 TCP window size: 85.3 KByte (default) ———————————————————— [ 6] local 192.168.0.210 port 1111 connected with 192.168.0.120 port 43410 [ ID] Interval Transfer Bandwidth

[ 6] 0.0-180.1 sec 79.6 MBytes 3.71 Mbits/sec

Отчет со стороны клиента:

iperf -c 192.168.0.210 —format k -m -p 1111 -t 180 ———————————————————— Client connecting to 192.168.0.210, TCP port 1111 TCP window size: 16.

0 KByte (default) ———————————————————— [ 5] local 192.162.0.120 port 43410 connected with 192.168.0.210 port 1111 [ ID] Interval Transfer Bandwidth [ 5] 0.0-180.

2 sec 81488 KBytes 3705 Kbits/sec [ 5] MSS size 1444 bytes (MTU 1500 bytes, ethernet) 

в данном случае измерялся 4M канал, реально измерения показали емкость на 7% меньше. Допустимая погрешность измерения до 10-15% определяется ростом очередей на маршрутизаторе при утилизации физического канала свыше 80%.

Оказалось что для тех кто не любит CLI есть графический интерфейс к этой утилите написанный на Java. Он кроме всего прочего строит графики и показывает другие рюшечки.
 

Называется Jperf, взять можно на SF.Net http://sourceforge.net/project/showfiles.php?group_id=128336&package_id=268197
для работы требует Java http://java.com/ru/download/manual.jsp

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

При этом одна система выступает в качестве сервера Iperf на одном из портов (по умолчанию — TCP 5001), а другая — в качестве клиентской системы, на которой запущен клиент Iperf.

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

Скачать iperf для Windows

Источник: http://ancher.ru/content/analiticheskie-sposobnosti-i-sistemnoe-myshlenie

Тестированиe пропускной способности канала — iperf

Для тестирования пропускной способности канала используем iperf3. Работает как в Linux, так и Windows, утилита кроссплатформенная. Пользоваться достаточно легко.

Для Linux устанавливаем пакет iperf3. Команды выполняем под root или используя sudo. Перед установкой пакета iperf3 прописываем репозиторий

# nano /etc/apt/sources.list

 Дополняем репозиторий и сохраняем файл

# binary and source packages
deb http://ftp.ru.debian.org/debian/ jessie main contrib non-free
deb-src http://ftp.ru.debian.org/debian/ jessie main contrib non-free

Обновляем информацию о пакетах, содержащихся в репозиториях

# apt-get update

Устанавливаем пакет iperf3 (необходимо установить на тестируемом компьютере и на компьютере, который будет сервером)

# apt-get install iperf3

Смотрим предварительно ip адрес компьютера, который будет серверной частью iperf3

# ifconfig

Запускаем серверную часть iperf3

# iperf3 -s -p 6001
где:
-s
— запуск утилиты в режиме сервера
-p 6001
— номер порта, на котором будет работать iperf3

На тестируемом компьютере запускаем iperf3

# iperf3 -c 192.168.6.128 -p 6001
где:
-c
— запуск утилиты в режиме клиента
192.168.6.128 — IP адрес серверной части
-p 6001
— номер порта серверной части

Получим результат тестирования пропускной способности сети

Возможны различные варианты тестирования пропускной способности сети

# iperf3 -c 192.168.6.128 -p 6001 -t 15 -i 2 -R
где:
-c
— запуск устилиты в режиме клиента
192.168.6.128 — IP адрес серверной части
-p 6001
— номер порта серверной части
-t 15 — время теста в секундах (15 секунд)
-i 2 — интервал в секундах между отчётами (2 секунды)
-R — тестировать результат в обе стороны

Прочитать документацию по iperf3 можно в man

# man iperf3

Для использования iperf3 в Windows, скачиваем архив iperf для Windows

http://bigro.ru/programmy.html
Далее выбираем IPerf
или
https://iperf.fr/iperf-download.php

Разархивируем архив например на диск С. Затем запускаем командную строку с правами администратора и работаем также как и в Linux (утилита кроссплатформенная)

c:>iperf3.exe -c 192.168.6.128 -p 6001 -t 15 -i 2 -R
где:
-c
— запуск устилиты в режиме клиента
192.168.6.128 — IP адрес серверной части
-p 6001
— номер порта серверной части
-t 15 — время теста в секундах (15 секунд)
-i 2 — интервал в секундах между отчётами (2 секунды)
-R — тестировать результат в обе стороны

Посмотреть видео, что устанавливать и как работает можно здесь:

Источник: http://bigro.ru/system/95-testirovanie-propusknoj-sposobnosti-kanala-iperf.html

Iperf — измеряем пропускную способность опорной сети

Опубликовано muff в Втр, 2009-10-13 02:57

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

Но мало функционала, к тому же дает погрешности. Поэтому для более детального тестирования использую утилиту iperf — мощный генератор UDP и TCP трафика. Функционал данной утилиты довольно богат.

Но о возможностях — немного позже.

Итак, приступаем к установке. Iperf находится в /usr/ports/benchmarks/iperf/.

# cd /usr/ports/benchmarks/iperf/# make install clean

Поддержку IPv6 отключаю, а вот поддержка тредов пригодится.

Options for iperf 2.0.4
[ ] IPV6 Enable support to IPv6
[X] THREADS Enable threads support

Устанавливаем iperf на двух компьютерах, между которыми хотим протестировать пропускную способность. Схема тестирования следующая:

Самый простой вариант тестирования:

1. На сервере запускаем iperf с ключем «-s»

# iperf -s———————————————————— Server listening on TCP port 5001 TCP window size: 64.0 KByte (default)————————————————————

2. На клиенте выполняем запуск со следующими параметрами:

# iperf -c адресс_iperf-сервер

Это все 🙂

На протяжении 10 секунд между этими хостами будет ити обмен трафиком, потом чего соединение будет разорвано и будет выведена статистика:

# iperf -c muff.kiev.ua ———————————————————— Client connecting to muff.kiev.ua, TCP port 5001 TCP window size: 32.5 KByte (default) ———————————————————— [  3] local 193.227.x.x port 49825 connected with 195.3.159.250 port 5001 [ ID] Interval       Transfer     Bandwidth[  3]  0.0-10.0 sec  90.5 MBytes  75.9 Mbits/sec

 Чтобы увеличить продолжительность соединения, необходимо добавить в строку запуска клиента параметр «-t« , где — продолжительность соединения в секундах. Также рекомендую использовать ключ «-i nsec», где nsec — интервал в секундах, через который будет выводиться статистика на экран.

Пример:

# iperf -c muff.kiev.ua -t 25 -i 5 -u————————————————————Client connecting to muff.kiev.ua, UDP

Источник: http://muff.kiev.ua/content/iperf-izmeryaem-propusknuyu-sposobnost-opornoi-seti

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

Сегодня всё больше и больше компаний для экономии на МГ/МН вызовах переходят на IP. При переходе на IP телефонию все хотят стабильной, а главное, качественной связи, но в отличии от обычной телефонии, где каждый слог передается напрямую через заранее подготовленный устойчивый канал, VoIP пересылает речевую и сигнальную информацию в пакетах данных через интернет канал.

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

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

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

Работает она по следующему принципу: на одном хосте запускаем iperf в режиме «сервер», на втором в режиме «клиент» с указанием ip-адреса первого хоста («сервера»). Через заданное время показывается измеренная информация.

 

Ключи и опции программы.
Опции для сервера:

-s — запуск утилиты в режиме сервера;-D — запуск утилиты в режиме сервера как процесс;

-U — запуск в одном многопоточном режиме UDP;

 

Опции клиента:

-b — используемая полоса для UDP (по умолчанию 1Mbit/sec);-c — запустить как клиент и соединиться с сервером;-d — тестировать линию в обе стороны;-n — установить размер передаваемого трафика (нельзя использовать c ключом -t);-r — не делать двунаправленное тестирование;-t — указать время тестирования (по умолчанию 10 сек);-F — не генерировать трафик, а передавать готовый файл;-I — ввод данных, передаваемых из STDIN (стандартный поток ввода);-L — порт, на котором клиент будет принимать двунаправленный трафик;-P — запуск нескольких потоков параллельно;

-T — время жизни пакета для групповой рассылки (по умолчанию 1);

 

Клиент/Сервер:

-f — в каком формате показывать скорость (Kbits, Mbits, KBytes, Mbytes);-i — с какими интервалами отображать промежуточные результаты;-l — размер буфера (по умолчанию 8 KB);-m — показывать максимальный размер TCP сегмента (MSS);-o — вывод отчета в указанный файл;-p — указать порт, по которому будет происходить соединение (по умолчанию 5001);-u — использовать UDP вместо TCP;-w — размер окна TCP;-B — указание для сервера, на каком интерфейсе принимать трафик;-C — режим совместимости со старыми версиями;-M — позволяет изменить максимальный размер TCP сегмента (MSS);-N — меняет некоторые опции TCP (отключение алгоритма Нагла);

Читайте также:  Версии 1с. обзор всех продуктов 1с:предприятие. какие существуют версии программы 1с

-V — использовать IPV6;

 

Общие опции:

-x — исключить C(connection) D(data) M(multicast) S(settings) V(server) из вывода;-y – использовать CSV формат;-v — информация о версии утилиты;

-h — вывод справки;

 

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

Тестируем пропускную способность.

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

iperf –s
 

На клиенте запускаем со следующими параметрами:

iperf –c 109.120.173.20–t 60 –i 10

На протяжении минуты (–t) хосты будут обмениваться трафиком, и каждые 10 секунд (–i )будут выводиться отчеты.

  

Тестируем TCP соединение между двумя узлами.

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

iperf -s -p 48999

На клиенте запускаем со следующими параметрами:

iperf -c 109.120.173.20 -p 48999 -t 60 -P 4

На протяжение минуты (–t) iperf будет проверяет 4 параллельных (-P) TCP соединения между двумя узлами по порту 48999 (-p).

  

Генерация VoIP трафика по G711 кодеку.

У нас есть офис в Москве и Питере, и в каждом из них установлена своя IP PBX. Максимальное количество вызовов между нашими двумя городами не превышает 13 вызовов с использованием кодека G711.

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

iperf -s -u -P 13 -fk -i 10

На клиенте запускаем со следующими параметрами:

iperf -u -c 109.120.173.20 -b 1M -P 13 -fk -i 10 -t 300

Запускаем 13 двунаправленных (-P 13 ) UDP потока (-u) на IP-адрес iperf-сервер (-c) с полосой 1 Мбит ( -b), а 300 секунд (-t ) с отчетом каждые 10 секунд (-i) в Кбит (-fk).

 

Если вы в статье нашли ошибки или несоответствия, мы будем благодарны, если вы напишите нам о них в комментариях.

Источник: https://voipnotes.ru/iperf-test-channel-throughput

iperf3: измеряем скорость сети

2gusiaСамый простой способ измерить скорость сети — это скопировать файлы и засечь время. И способ самый правильный в том смысле, что именно для этого сеть в основном и сделана. Но есть недостаток.

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

Для тестирования собственно сетевой части есть несколько известных кросс-платформенных (то есть для множества операционных систем — хоть для 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 -viperf 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 root@dev.nas4free.org:/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:iperf35. И идём в командную строку Windowsесли нажать ENTER и сервер на другом конце запущен (п 2)  — начнётся тестированиеНа примере выше имеем 455Мбит/cТеперь можно оценивать. Сказать по-правде, 455Мбит/c — цифра для гигабитной сети — позорная. Меньше половины возможной. Причём когда будут качаться файлы — скорость будет ещё ниже за счёт вклада дисковой системы с обеих сторон и возможных потерь на сетевые протоколы более высокого уровня.Если скорость не устраивает — нужно искать в чём дело. Я для начала записал на флешку Live образ nas4free и загрузил с неё свой настольный компьютер.

Результат — 798-812 Мбит/c в зависимости от второстепенных параметров тестирования. Тоже не супер.

Но с учётом древнего железа (настольный комп у меня на Core первого поколения), встроенных реалтековских карт и пр. — сойдёт.

А вот мой Windows7 просится в настройку 🙁 Обычно такие шалости творят антивирусы. В моём случае вклад вносит ещё и VirtualBox. Но всё это тема для отдельного разговора.

Источник: https://2gusia.livejournal.com/467880.html

Iperf — тест пропускной способности интернет канала

При необходимости измерить фактическую полосу пропускания интернет канала можно воспользоваться консольной утилитой iperf. Это своего рода «генератор» TCP/UDP трафика.

Iperf — кроссплатформенная консольная клиент-серверная программа, предназначена для тестирования пропускной способности интернет канала между двумя компьютерами.

Как работает.

Измерение осуществляется следующим образом, на одном ПК запускаем iperf в режиме «сервер», на втором в режиме «клиент» с указанием ip-адреса первого ПК («сервера»). Через заданное время показывается измеренная информация.

Установка.

Посмотрим, есть ли эта утилита в портах FreeBSD:

# whereis iperf

iperf: /usr/ports/benchmarks/iperf

Есть. Устанавливаем:

# cd /usr/ports/benchmarks/iperf

# make install clean

Несколько секунд и всё готово, можно пользоваться.

Как было сказано ранее iperf кроссплатформенная, по ссылке в конце статьи можно скачать версию для Windows.

Ключи и опции iperf.

Опции для режима «сервер»:

-s — запуск утилиты в режиме сервера

-U — запуск в одном многопоточном режиме UDP

-D — запуск утилиты в режиме сервера как процесс

Опции для режима «клиент»:

-c — запуск режиме клиента

-d — одновременно двунаправленный тест

-n — количество байт для передачи

-r — двунаправленный тест по отдельности

-t – время теста в секундах (по умолчанию 10 секунд)

-F – указать имя файла входных данных, подлежащих передаче из файла

-P — число параллельных потоков для запуска клиента

Общие опции:

-f — [KmKM] формат для отчета: Кбит, Мбит, Кбайт, Мбайт

-h — помочь

-i – задать интервал в секундах между отчетами пропускной способности

-l — [KM] задать длину буфера чтения/записи (по умолчанию 8 КБ)

-m — показывать максимальный размер сегмента (MTU — TCP / IP заголовке)

-o — вывод отчета в указанный файл

-p — установить порт для прослушивания/подключения (по умолчанию 5001)

-u — использовать UDP (по умолчанию TCP)

-w — задать размер окна (размер буфера сокета)

-B — задать интерфейс или групповой адрес

-M — установка максимального размера сегмента (MTU — 40 байт)

-v — информация о версии утилиты

-V — использование IPv6

-y – использовать CSV формат (значения, разделенные запятыми)

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

Запустить утилиту в режиме «сервер»:

# iperf –s

Запустить утилиту в режиме «сервер», прослушивать порт 49001 с работой только по UDP протоколу:

# iperf –s –u –p 49001

Запустить утилиту в режиме «клиент» с указанием на сервер с ip-адресом 192.168.5.39:

# iperf –c 192.168.5.39

Запустить утилиту в режиме «клиент» с указанием на сервер с ip-адресом 192.168.5.39 с прослушиванием на порт 49001 протоколом UDP и тестировать две минуты:

# iperf –c 192.168.5.39 –t 120 –u –p 49001

Запустить утилиту в режиме «клиент» с указанием на сервер с ip-адресом 192.168.5.39 с прослушиванием на порт 49001 и тестировать 30 секунд с выводом результата каждые 5 секунд:

# iperf –c 192.168.5.39 –t 30 –p 49001 –i 5

Запустить утилиту в режиме «клиент» с указанием на сервер с ip-адресом 192.168.5.39 с выводом результата каждые 5 секунд до тех пор, пока по трафику не пройдёт 200 Мбайт информации:

# iperf –c 192.168.5.39 –n 200М –i 5

Запустить утилиту в режиме «клиент» с указанием на сервер с ip-адресом 192.168.5.39 и тестировать 20 секунд с выводом результата каждые 5 секунд в обе стороны:

# iperf –c 192.168.5.39 –t 20 –i 5 –r

Полезные ссылки:

Источник: http://alexof.ru/page/iperf

Использование утилиты 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<\p>

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

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

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

На сервере:

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

На клиенте:

iperf3 -u -c<\p>

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

Источник: http://Ubuntu-News.ru/solid/ispolzovanie-utility-iperf3-dlya-testirovaniya-skorosti-kanala-v-ubuntu

Ссылка на основную публикацию