Руководства, Инструкции, Бланки

Iperf Windows Инструкция img-1

Iperf Windows Инструкция

Рейтинг: 4.1/5.0 (1923 проголосовавших)

Категория: Инструкции

Описание

Как измерить полосу пропускания канала сети (iperf)

Открыл для себя очень удобную утилиту iperf ( http://dast.nlanr.net/Projects/Iperf/ ). Работает под всеми системами, бесплатная, с открытыми исходниками. Под Windows не требует установки. Пример установки на FreeBSD здесь .

Меряет довольно точно - по крайней мере, результаты правдоподобные, и совпадают друг с другом при нескольких измерениях. Программу нужно запускать на двух компьютерах, по обе стороны тестируемого канала (с одной стороны - в режиме сервера. с другой - в режиме клиента ). Скорость (полоса канала) тестируется при этом только в одном направлении - от клиента к серверу. то есть клиент передает данные, а сервер принимает. Чтобы протестировать полосу канала в обратном направлении, сервер и клиент меняются местами на концах канала. iperf может генерить трафик "в никуда", например на несуществующий адрес. С помощью этого можно загрузить канал или сетевой интерфейс на необходимую величину - см. Пример 4. Хорошая инструкция от РТКом по использованию программы здесь. Для получения подсказки об использовании утилиты достаточно набрать iperf –help.

Пример 1 (тестирование по TCP-порту 5001, для другого порта нужно использовать ключ -p).
Запуск сервера (у которого IP 10.50.xx.yy):
>iperf -s
Запуск клиента:
>iperf -c 10.50.xx.yy

Пример 2 (тестирование по UDP-порту 4000):
Запуск сервера (у которого IP 10.50.xx.yy):
>iperf -s -u -p4000
Запуск клиента:
>iperf -c 10.50.xx.yy -u -p 4000

При тестировании UDP лучше задавать полосу канала, величиной немного более ожидаемой, с помощью ключа -b. Если ключ -b не указать, то предполагается по умолчанию полоса 1 мбит/сек, и скорость при тестировании не будет превышать этой величины. В примере ожидается, что полоса канала должна быть 2 мегабита:
Запуск сервера (у которого IP 10.50.xx.yy):
>iperf -s -u -p4100
Запуск клиента:
>iperf -c 10.50.xx.yy -u -p 4100 -b 2100000

Пример 3 .
Скрипт, который устанавливает iperf на удаленной машине как сервис, и запускает его - с помощью этого можно быстро протестировать канал (без проблем с копированием на удаленный компьютер, запуском его и проч.). Для того, чтобы скрипт отработал, пользователь UserName и пароль Pass должны принадлежать пользователю с правами админа.

'Файл install_iperf.vbs - инсталляция утилиты iperf.exe
' и запуск её на удаленной машине.
Dim RemoteSystem
'IP удаленной машины
RemoteSystem = "10.20.0.35"

'1. Копируем iperf.exe на удаленный компьютер
Set FSO = CreateObject("Scripting.FileSystemObject")
' тут указывается путь до локальной копии iperf.exe
Set File = FSO.GetFile("C:\Distrib\Tools\net\iperf\iperf.exe")
File.Copy "\\" + RemoteSystem + "\ADMIN$\system32\"

'2. Install iperf as service on remote machine
On Error Resume Next
Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
UserName = "domain_mame\admin" 'имя пользователя
Pass = "admin_pass"
Set objServices = objSWbemLocator.ConnectServer(RemoteSystem, "root\CIMV2", UserName, Pass, Null, Null, 0)
If Err.Number <> 0 Then
WScript.Echo Err.Number & ": " & Err.Description
WScript.Quit
End If
Set objClass = objServices.Get("Win32_Process")
' информация на удаленном компьютере будет выводиться в лог, находящийся
' в системной папке ADMIN$\system32
Res = objClass.Create("iperf -s -D -o iperflog.txt", Null, Null, PID)
If Res <> 0 Then
WScript.Echo "error code: " & Res
End If

'3. Start iperf service on remote machine
Set objWMIService = GetObject("winmgmts:" _
& "!\\" & RemoteSystem & "\root\cimv2")
Set colListOfServices = objWMIService.ExecQuery _
("SELECT IPerfService FROM Win32_Service WHERE State = 'Stopped' and StartMode = " _
& "'Auto'")
For Each objService in colListOfServices
objService.StartService()
Next

При желании можно добавить к скрипту другие вкусности - обработку командной строки, где указывается remote IP, порт для тестирования, протокол UDP или TCP и проч.

Прим ер 4 (загрузка канала пустым трафиком, с обратной стороны сервера iperf может и не быть):
>iperf -c 192.168.3.125 -u -b 100m -t 60
Здесь в качестве IP адреса (192.168.3.125) может быть даже отсутствующий (невидимый) в сети host, протокол указан UDP (-u), указана полоса загрузки 100 мегабит (-b 100m), время посылки пакетов 60 секунд (-t 60).

Прим ер 5. На скорость может иногда влиять размер окна TCP (TCP window size ). Этот параметр можно задать опцией -w. Если не задавать, то по умолчанию размер окна принимается величиной 8 кБайт.
>iperf -s -p4100 -w1400
Здесь указан размер окна 1400 байт. Размер окна есть смысл указывать только на сервере, поскольку он является приемником данных. Можно также указывать величину окна в килобайтах, например -w9k, -w10k, -w40k.

Пример 6. Запуск в режиме демона (как служба. она в списке служб будет называться IPerf Service), протокол UDP, порт по умолчанию 5001:
>iperf -D -u -s
Остановка и удаление службы:
>iperf -R -s

В системе Windows NT размер приемного окна может увеличиваться на величину, кратную максимальному размеру сегмента (Maximum Segment Size, MSS). Значение MSS определяется во время установления соединения. По умолчанию приемное окно задает размер данных 8 Кбайт для Windows NT 4.0 и 16 Кбайт для Windows NT 5.0. Такой размер окна выставляется в реестре операционной системы (параметр ТсрWindowSize — столбец 2 табл. 1). Размер окна, устанавливаемый в сетях Ethernet, позволяет передать 8760 байт информации (8 Кбайт, размещенные в шести сегментах по 1460 байт) для операционной системы Windows NT 4.0 и 17520 байт (16 Кбайт, размещенные в 12 сегментах по 1460 байт) для Windows NT 5.0.

Таблица 1. Параметры реестра Windows NT, регулирующие работу протокола TCP

17 520 (для сети Ethernet)

Для ОС Microsoft Windows NT 5.0 размер окна рассчитывается следующим образом. Первый запрос на установление соединения, посылаемый удаленному абоненту, предлагает установить размер окна, определяющий 16 Кбайт (16 384 байт) данных. После формирования соединения размер приемного окна округляется до объема данных, кратных максимальному размеру сегмента MSS, который был оговорен в процессе установления соединения. Если размер приемного окна определяет объем данных, близкий к четырехкратному значению MSS, то окно выравнивается до значения 4MSS, которое сохранится до тех пор, пока не будет активизирован алгоритм масштабирования окна.

В операционной системе Windows NT 5.0 окно масштабируется автоматически, если параметр ТсрWindowSize реестра установлен в значение, превосходящее 64 Кбайт. Масштабирование окна можно запретить вручную параметром Tcp1323Opts (столбец 3 табл. 1).

Работать с окном, размер которого превышает 64 Кбайт, можно только в том случае, если абонент поддерживает эту опцию. Значение по умолчанию устанавливается как наименьшее из следующих величин: 0xFFFF; значение дополнительного параметра GlobalMaxTcpWindowSize в реестре ОС Windows NT; наибольшее из четырехкратного значения максимального размера данных TCP в сети и значения 16 384, выравненного до кратного размера данных протокола TCP. Значение по умолчанию для сети Ethernet составляет 17 520 байт (в реализации TCP для Windows NT 5.0). Оно может быть немного уменьшено, если соединение установлено с абонентом, который поддерживает алгоритмы SACK и временные метки (time stamp), так как они увеличивают размер заголовка протокола TCP сверх обычного 20-байтного размера, оставляя меньше места для данных.

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

Параметр Tcp1323Opts может принимать следующие значения: 0 - применение опций RFC 1323 запрещено, 1 — разрешено использовать только масштабирование окна; 2 — разрешено применять только временные метки; 3 — разрешено использовать обе опции.

На рисунке иллюстрируется пример тестирования канала связи между IP 10.81.23.103 (на нем запущена сессия RDP и в ней командная строка для запуска ipef) и IP 10.50.0.246 UDP-трафиком на порте 4100 (-u -p4100) в течение 2 минут (-t 120):

На заднем плане видно окно RDP компьютера 10.81.23.103, в котором запущен taskmgr в режиме отрображения утилизации сети (слева вверху) и iperf в режиме сервера (справа вверху). Внизу запущены два такие же окна на локальной машине 10.50.0.246 (iperf работает в режиме клиента). Ожидаемая полоса пропускания канала должна быть 40 мегабит, поэтому в командной строке клиента (он посылает трафик на сервер) указана несколько бОльшая полоса - 41 мегабит (-b 41000000). На диаграмме taskmgr хорошо видно, что пакеты до сервера дошли не все - у taskmgr сервера загрузка сетевого интерфейса во время теста была несколько меньше, чем у клиента (в среднем 37% против 41%). Это хорошо согласуется с результатами выдачи iperf - скорость отправки 39.4 мегабита, скорость приема 35.1 мегабит, потеряно 11% пакетов. Итак, по результатам теста полоса пропускания в направлении от хоста 10.50.0.246 к хосту 10.81.23.103 примерно соответствует заявленной полосе 40 мегабит.

Комментарии

Другие статьи

Iperf windows инструкция

Iperf

Существует множество статей, как работать Iperf’ом, но ни одна статья не ответила мне на вопрос как его запустить из под windows 7\8\10 (а вот понадобилось), очень мало статей упонинает какую скорость он измеряет, что подразумевается под пропускной способностью канала. Итак, все по порядку.

Что такое iperf?

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

Iperf и unix

Iperf в unix-подобных система находится во всех репозиториях и, чтобы его установить, необходимо запусть стандартную инсталляционную команду для вашего дистрибутива, например для debian это:

Для работы с утилитой прото вызываем iperf, например запустить данную утилиту в режиме сервера на 3600 секунд(1 час)

Iperf и windows.

Iperf не входит в стандартный дистрибутив windows, поэтому его надо скачать, например тут

Далее, необходимо поместить этот файл для удобства на диск С:

Если вы 2 раза кликните на то, что скачали, утилита запуститься и сразу «вылетит». Пользоваться ей надо следующим образом

  1. Зайдите в командную строку Пуск->выполнить->cmd или если Windows 10 в поиске необходимо набрать Cmd, он сам автоматически найдет то, что нам нужно.
  2. В открывшейся командной строке, надо перейти в папку, куда вы поместили скаченный iperf, в нашем случае она будет лежать на диске C:/, выполнив команду: cd c:/
  3. Чтобы запустить iperf, например, в режиме клиента, необходимо выполнить команду: iperf -c <ip-адрес серверной части> -t 30 -i 10, где -t — время теста, -i — интервал обновления данных теста

Как видим, исходящая скорость исходящая скорость до сервера x.x.x.201 в среднем 15 мегабит\сек

Что умеет 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 <filename>, Запись отчёта в указанный файл

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

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

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

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

-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 <host>, запустить в режиме клиента, при подключении к <host>

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

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

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

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

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

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

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

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

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

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

Удобные команды iperf для быстрой проверки сетевого соединения - Статьи о Microsoft Windows


Бесплатная сетевая утилита iperf – одно из самых простых и удобных современных сетевых приложений. Рик Вановер (Rick Vanover ) рассказывает о наиболее распространенных командах iperf для быстрой проверки сетевого соединения.

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

Запуск сервера iperf

Одна из самых полезных команд iperf – команда для запуска процесса прослушивания клиентского соединения на уровне сервера iperf:

iperf.exe -s -P 2 -i 5 -p 5999 -f k

Эта команда запускает процесс прослушивания на порте 5999 (хотя по умолчанию используется порт 5001), ограничивает его двумя подключениями и обеспечивает вывод отчета о проверке каждые 5 секунд. Очень важно ограничиться именно двумя подключениями (значение -P): после второго подключения осуществляется автоматическое завершение серверного процесса. Если указать значение 0, процесс iperf будет работать постоянно и без ограничения на количество подключений, пока его не завершат вручную. На хосте Windows запущенный слушатель работает, как показано на рис. A.

Запуск клиентского соединения iperf

Другая составляющая iperf – клиент, устанавливающий соединение со слушателем. Запуск клиентского соединения с сервером s-network1.amcs.tld через порт 5999 (как в предыдущем примере) на 60 секунд с выводом отчета каждые 5 секунд осуществляется следующей командой:

iperf.exe -c s-network1.amcs.tld -P 1 -i 5 -p 5999 -f B -t 60 -T 1

При выполнении этой команды проверяется эффективность сетевого соединения с хостом s-network1. В отличие от графического апплета Jperf, где результаты представлены в виде графиков, iperf просто выводит данные о пропускной способности сети в указанных единицах – в данном случае, в байтах (значение -f). На рис. B показана пропускная способность соединения между удаленным клиентом и хостом s-network1.

Стандартные команды можно оформить в виде файла .bat с указанием имени сервера и запускать всякий раз, когда требуется проверка сетевого подключения. Загрузить утилиту iperf можно с сайта SourceForge .

Похожие новости

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

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

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

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

Options for iperf 2.0.4

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

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

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

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"nsec. где nsec - продолжительность соединения в секундах. Также рекомендую использовать ключ "-i nsec", где nsec - интервал в секундах, через который будет выводиться статистика на экран.

# iperf -c muff.kiev.ua -t 25 -i 5 -u
------------------------------------------------------------
Client connecting to muff.kiev.ua, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size: 9.00 KByte (default)
------------------------------------------------------------
[ 3] local 193.227.x.x port 58437 connected with 195.3.159.250 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 5.0 sec 630 KBytes 1.03 Mbits/sec
[ ID] Interval Transfer Bandwidth
[ 3] 5.0-10.0 sec 640 KBytes 1.05 Mbits/sec
[ ID] Interval Transfer Bandwidth
[ 3] 10.0-15.0 sec 639 KBytes 1.05 Mbits/sec
[ ID] Interval Transfer Bandwidth
[ 3] 15.0-20.0 sec 642 KBytes 1.05 Mbits/sec
[ ID] Interval Transfer Bandwidth
[ 3] 20.0-25.0 sec 642 KBytes 1.05 Mbits/sec
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-25.0 sec 3.12 MBytes 1.05 Mbits/sec
[ 3] Sent 2225 datagrams
[ 3] Server Report:
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 3] 0.0-25.0 sec 3.12 MBytes 1.05 Mbits/sec 0.159 ms 0/ 2224 (0%)
[ 3] 0.0-25.0 sec 1 datagrams received out-of-order

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

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

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

# iperf -u -c muff.kiev.ua -l 100 -b 20k -t 20
------------------------------------------------------------
Client connecting to muff.kiev.ua, UDP port 5001
Sending 100 byte datagrams
UDP buffer size: 9.00 KByte (default)
------------------------------------------------------------
[ 3] local 193.227.x.x port 52923 connected with 195.3.159.250 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-20.1 sec 48.9 KBytes 20.0 Kbits/sec
[ 3] Sent 501 datagrams
[ 3] Server Report:
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 3] 0.0-20.1 sec 48.9 KBytes 20.0 Kbits/sec 0.052 ms 0/ 500 (0%)
[ 3] 0.0-20.1 sec 1 datagrams received out-of-order

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

Можно также указать обьем трафика, который необходимо передать. Для этого используем ключ "-n size".

# iperf -c muff.kiev.ua -n 500m -i 5s
------------------------------------------------------------
Client connecting to muff.kiev.ua, TCP port 5001
TCP window size: 64.5 KByte (default)
------------------------------------------------------------
[ 3] local 193.227.x.x port 50571 connected with 195.3.159.250 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 5.0 sec 46.9 MBytes 78.6 Mbits/sec
[ ID] Interval Transfer Bandwidth
[ 3] 5.0-10.0 sec 46.4 MBytes 77.9 Mbits/sec
[ ID] Interval Transfer Bandwidth
[ 3] 10.0-15.0 sec 40.2 MBytes 67.5 Mbits/sec
[ ID] Interval Transfer Bandwidth
[ 3] 15.0-20.0 sec 46.6 MBytes 78.1 Mbits/sec
[ ID] Interval Transfer Bandwidth
[ 3] 20.0-25.0 sec 47.1 MBytes 79.1 Mbits/sec
[ ID] Interval Transfer Bandwidth
[ 3] 25.0-30.0 sec 43.2 MBytes 72.4 Mbits/sec
[ ID] Interval Transfer Bandwidth
[ 3] 30.0-35.0 sec 50.0 MBytes 83.9 Mbits/sec
[ ID] Interval Transfer Bandwidth
[ 3] 35.0-40.0 sec 47.2 MBytes 79.1 Mbits/sec
[ ID] Interval Transfer Bandwidth
[ 3] 40.0-45.0 sec 42.7 MBytes 71.6 Mbits/sec
[ ID] Interval Transfer Bandwidth
[ 3] 45.0-50.0 sec 43.9 MBytes 73.6 Mbits/sec
[ ID] Interval Transfer Bandwidth
[ 3] 50.0-55.0 sec 43.4 MBytes 72.8 Mbits/sec
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-55.2 sec 500 MBytes 75.9 Mbits/sec

И это только часть возможных опций! Более детально ознакомиться с возможностями iperf можно на страницах man-руководства.

В итоге, как видим, iperf дает намного больше возможностей, нежели speedtest. Кстати, существует также версия для Windows-систем (утилита работает в командной строке).

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

Как протестировать скорость сети, измеряем ширину канала Интернет Задача: Как быстро протестировать скорость канала локальной сети или ширину Интернет канала?

Провайдер сделал 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 <host> bind to <host>, 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 <host> run in client mode, connecting to <host> - запустить как клиент и соединится на IP <host>
-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 <name> 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) – время жизни пакета (лучше не трогать)

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_<long option name>, such as IPERF_BANDWIDTH.

И так, как я уже говорил iperf работает в двух режимах: клиентском и серверном. Программа запущенная в серверном режиме на одном конце сети будет ожидать запуска клиентского варианта на другом конце. Клиентская программа инициирует соединение и начинает передачу трафика для тестирования. Будет ли запускаться программа в режиме сервера или клиента зависит от того используется ли ключ -s или -c соответственно.

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

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

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

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

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

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

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

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. Он кроме всего прочего строит графики и показывает другие рюшечки.

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

Iperf windows инструкция

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Запустить утилиту в режиме «сервер», прослушивать порт 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


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

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

Опубликовал litladmin - April 9th, 2013 05:42 AM | Тестирование. Утилиты

Материал просмотрен 9,857 раз(а)

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

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

Где скачать:

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

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

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

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

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

На узле 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 <filename> Запись отчёта в указанный файл
  • -p, –port n задаёт порт к которому конектится или на котором вешать сервер (по умолчанию 5001 )
  • -u, –udp использовать UDP, а не TCP
  • -w, –window n[KM] TCP размер окна (размер буфера сокета)
  • -B, –bind <host> привязки к хосту, интерфейсу или групповому адресу
  • -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 <host> запустить в режиме клиента, при подключении к <host&
Вам так же понравится: