- Iperf
- Что такое iperf?
- Iperf и unix
- Iperf и windows.
- Что умеет iperf?
- 15 Useful examples of iperf commands in Linux (How to use iperf in Linux)
- Syntax
- iperf commands in Linux
- Example 1: How to check iperf command version
- Example 2: How to Check Network Performance in Server Mode
- Example 3: How to Check Network Performance in Client mode
- Example 4: How to Start iperf Server on UDP Port
- Example 5: How to Send data for N secs in Client Mode
- Example 6: How to measure bidirectional bandwidths sequentially
- Example 7: How to measure bidirectional bandwidths simultaneously
- Example 8: How to Change TCP Window Size in Client mode
- Example 9: How to change TCP Window Size in Server mode
- Example 10: How to Connect iperf Server on UDP Port
- Example 11: How to Check Packet Loss through UDP Connection
- Example 12: How to Check UDP Network Statistics in Detail
- Example 13: How to Launch Parallel Network Bandwidth Tests
- Example 14: How to Test TCP Connection Using Maximum Segment Size
- Example 15: How to check other options of iperf commands in Linux
- Iperf как пользоваться linux
- Содержание статьи:
- Что такое Iperf
- Виды и версии Iperf
- Основные отличия Iperf2 и Iperf3
- Где скачать Iperf
- Как установить Iperf в Windows
- Как установить Iperf в CentOS 7
- Установка iperf на CentOS 8
- Установка iperf3 в CentOS 7 и 8
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 раза кликните на то, что скачали, утилита запуститься и сразу «вылетит». Пользоваться ей надо следующим образом
- Зайдите в командную строку Пуск->выполнить->cmd или если Windows 10 в поиске необходимо набрать Cmd, он сам автоматически найдет то, что нам нужно.
- В открывшейся командной строке, надо перейти в папку, куда вы поместили скаченный iperf, в нашем случае она будет лежать на диске C:/, выполнив команду: cd c:/
Чтобы запустить iperf, например, в режиме клиента, необходимо выполнить команду: iperf -c -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 , Запись отчёта в указанный файл
-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 (значения, разделенные запятыми)
Конкретные варианты SERVER
-s, —server, запустить в режиме сервера
-U, —single_udp, работать в однопоточном режиме UDP
-D, —daemon, запустить сервер как демон
Конкретные варианты CLIENT
-b, —bandwidth n[KM], установить пропускную способность в бит/сек (по умолчанию 1 Мбит/сек.). Эта установка требует UDP (-u).
-c, —client , запустить в режиме клиента, при подключении к
-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)
Источник
15 Useful examples of iperf commands in Linux (How to use iperf in Linux)
Table of Contents
In this article, I will take you through 15 Useful examples of iperf commands in Linux. iperf is an open source tool that can be easily installed in Linux. It provides a reliable information about Network Bandwidth and its performance. You can easily check the network latency and other errors using this tool. You can also check many different information using iperf tool from Client as well as from Server Side. We will look into various possible uses of this tool in below examples.
Syntax
iperf -s [options]
iperf -c server [options]
iperf -u -s [options]
iperf -u -c server [options]
iperf commands in Linux
Example 1: How to check iperf command version
If you want to check iperf command version then you need to use -v option with iperf commands as shown below. As you can see from below output current iperf command version is 2.0.13
-v : print version information and quit
Example 2: How to Check Network Performance in Server Mode
If you want to run iperf command in Server mode then you need to use -s option with iperf command as shown below. Also if you want to check transfer bandwidth size in KBytes/sec then you need to use -f option and specify the unit.
-s : run in server mode
-f : format to report: adaptive, bits, Bytes, Kbits, Mbits, Gbits, KBytes, MBytes, GBytes
Example 3: How to Check Network Performance in Client mode
If you want to check network performance in Client mode then you need to use -c option with iperf command as shown below. In this example we are trying to connect Server 192.168.0.100 on TCP port 5001 with default TCP window size.
-c : run in client mode, connecting to host
You can also go to the Server end and verify the response as shown below.
Example 4: How to Start iperf Server on UDP Port
If you want to start iperf Server on UDP Port instead of starting in default TCP Port then you need to use -u option with iperf command as shown below. In this example we are trying to start iperf in Server mode on default UDP Port 5001 using iperf -s -u command.
Example 5: How to Send data for N secs in Client Mode
If you want to send data for N secs in Client mode then you need to provide the number of seconds using -t option with iperf command as shown below. In this example we are trying to send data to the Server(192.168.0.100) for 15 seconds in Client mode using iperf -c 192.168.0.100 -t 15 command.
-t : time in seconds to listen for new traffic connections, receive traffic or transmit traffic
Example 6: How to measure bidirectional bandwidths sequentially
If you want to measure bidirectional bandwidths sequentially then you need to use -r option with iperf command as shown below. In this example we are connecting Server 192.168.0.100 on Port 5001 to perform bidirectional tests sequentially.
-r : Do a bidirectional test individually — client-to-server, followed by a reversed test, server-to-client
You can also go to the Server end and verify the response as shown below.
Example 7: How to measure bidirectional bandwidths simultaneously
If you want to measure bidirectional bandwidths simultaneously then you need to use -d option with iperf command as shown below. In this example we are connecting Server 192.168.0.100 on Port 5001 to perform bidirectional tests simultaneously.
-d : Do a bidirectional test simultaneously.
You can also verify the response from Server end as shown below.
Example 8: How to Change TCP Window Size in Client mode
If you want to change the TCP Window size in Client mode then you need to use -w option with iperf command as shown below. In this example we are trying to connect Server 192.168.0.100 on TCP Port 5001 with TCP window size of 4000 .
-w : TCP window size (socket buffer size)
Example 9: How to change TCP Window Size in Server mode
If you want to change TCP Window Size in Server mode then you need to use -w option with -s option as shown below. In this example, we are trying to start Server which listens on Port 5001 with a TCP window size of 4000 .
Example 10: How to Connect iperf Server on UDP Port
If you want to connect Server on UDP Port instead of default TCP Port then you need to use -u option with iperf command as shown below. In this example, we are trying to connect Server 192.168.0.100 on UDP Port 5001 instead of connecting to default TCP Port.
-u : use UDP rather than TCP
Now you can go to Server end and verify the response as shown below.
Example 11: How to Check Packet Loss through UDP Connection
If you want to determine the packet loss through the network then UDP is the best way to check and measure this loss. In this example, we are trying to connect Server 192.168.0.100 on UDP Port 5001 with a target bandwidth of 10 Mbits/sec .
-b : set the target bandwidth and optional standard devation per ,[ ]
You can also verify once from Server end as shown below.
Example 12: How to Check UDP Network Statistics in Detail
If you want to check all the UDP Network Statistics like Transfer Bandwidth, Jitter, Packet Loss etc then you need to use below iperf commands. In client end, we will send the data to connect to UDP Port on Server 192.168.0.100 using bandwidth of 10 Mbits/sec .
You can also verify the stats from Server end as shown below.
-i : pause n seconds between periodic bandwidth reports
Example 13: How to Launch Parallel Network Bandwidth Tests
If you want to run parallel network bandwidth tests then you need to use -P option iperf command and specify the number of connections as shown below. In this example we are trying to launch 4 Parallel Network Bandwidth tests by connecting 192.168.0.100 Server on Port 5001 .
-P : number of parallel client threads to run
Similarly you can go to Server end and check the number of client connections as shown below.
Example 14: How to Test TCP Connection Using Maximum Segment Size
If you want to test TCP Connection using maximum segment size then you need to use -m option with iperf command as shown below. Usually MSS will have the size range from 0-65535 bytes . Hence by specifying -m option with iperf command will use the maximum segment size of 65535 bytes for TCP testing.
-m : print TCP maximum segment size (MTU — TCP/IP header)
Now you can go to Server end and check the response as shown below.
Example 15: How to check other options of iperf commands in Linux
If you want to check all the other options available with iperf command then you need to use iperf —help command as shown below.
Popular Recommendations:-
Источник
Iperf как пользоваться linux
Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов России Pyatilistnik.org. В прошлый раз мы с вами разобрали применение очень полезной утилиты Robocopy, с помощью которой мы мигрировали данные файлового сервера. В сегодняшней статье я хочу вас познакомить с утилитой Iperf, я разберу ее установку, примеры ее использования в вашей инфраструктуре. Хочу отметить, что она должна быть частью вашего административного набора программ.
Содержание статьи:
- Что такое утилита Iperf
- Виды и версии Iperf
- Где скачать Iperf
- Как установить Iperf в Windows
- Как установить Iperf в CentOS
- Как установить Iperf в Debian или Ubuntu
- Примеры использования Iperf
Что такое Iperf
В жизни каждого системного администратора наступает такая ситуация, что у него есть проблемы со скоростью сети между серверами, как физическими, так и виртуальными. В такой ситуации необходимо произвести тестирования пропускной способности сетевого канала между участниками.
Iperf — это бесплатная сетевая утилита с открытым кодом, которая позволяет вам протестировать и определить пропускную способность сети между серверами на базе Windows и Linux. Так же Iperf-у можно дать и такое определение, это инструмент для активных измерений максимально достижимой полосы пропускания в IP-сетях. Он поддерживает настройку различных параметров, связанных с синхронизацией, буферами и протоколами (TCP, UDP, SCTP с IPv4 и IPv6). Для каждого теста он сообщает о пропускной способности, потерях и других параметрах.
Виды и версии Iperf
Сама утилита работает по умолчанию в режиме командной строки, но у нее так же есть надстройка на Java, для графического интерфейса. Так же есть две независимых ветки у данного инструмента по тестированию сети. Первая ветка, это Iperf2, вторая Iperf3.
Какова история iperf3 и в чем разница между iperf2 и iperf3?
iperf2 был заброшен в конце 2000-х годов на версии 2.0.5, несмотря на некоторые известные ошибки и проблемы. Потратив некоторое время на решение проблем с iperf2, ESnet к 2010 году решила, что нужен новый, более простой инструмент, и приступила к разработке iperf3. Цель состояла в том, чтобы сделать инструмент как можно более простым, чтобы другие могли внести свой вклад в код. По этой причине было решено сделать инструмент однопоточным и не беспокоиться о обратной совместимости с iperf2.Многие запросы функций для iperf3 поступили из проекта perfSONAR ( http://www.perfsonar.net).
Затем в 2014 году Боб (Роберт) МакМахон из компании Broadcom возобновил разработку iperf2. Он исправил многие проблемы с iperf2 и добавил ряд новых функций, похожих на iperf3. iperf2.0.8, выпущенный в 2015 году, сделал iperf2 полезным инструментом. Текущее развитие iperf2 сосредоточено на использовании UDP для тестирования задержки, а также на широкой поддержке платформ.
На момент написания статьи (2019), iperf2 и iperf3 активно (хотя и независимо) разрабатываются. Я рекомендуем ознакомиться с обоими инструментами и использовать те функции, которые лучше всего соответствуют вашим потребностям.
Основные отличия Iperf2 и Iperf3
Каждый из этих инструментов имеет несколько разные функции и немного другую архитектуру, поэтому не стоит ожидать, что какой-то один инструмент будет иметь все необходимое. Лучше быть знакомым с несколькими инструментами и использовать правильный инструмент для вашего конкретного случая использования. Одно ключевое отличие заключается в том, является ли инструмент однопоточным или многопоточным. Если вы хотите протестировать производительность параллельного потока, вы должны использовать многопоточный инструмент, такой как iperf2, хотя в iperf3 так же можно сделать костыль.
Обратите внимание, что все три из этих инструментов находятся в активной разработке, и список уникальных функций для данного инструмента, вероятно, со временем изменится. Исходя из моего опыта, я рекомендуем следующее:
- Используйте iperf2 для параллельных потоков, двунаправленных тестов или тестов на базе MS Windows.
- Используйте nuttcp или iperf3 для высокоскоростного тестирования UDP
Где скачать Iperf
Загрузить утилиту можно из разных источников. Если мы говорим про Linux, Unix версии, то вы можете использовать ссылку с github:
Если нужно скачать Iperf для Windows, то воспользуйтесь ссылкой с моего ресурса:
Как установить Iperf в Windows
Чтобы установить Iperf2 или Iperf3 в операционной системе Windows, вам потребуется скачать свежую версию. На выходе у вас будет архивный файл. Далее вы распаковываете архив и получаете файл командной строки и cygwin1.dll
Далее вы открываете командную строку, желательно от имени администратора. После чего пишите команду:
cd C:\Temp\iperf-2.0.14a-win
После чего вывод списка файлов командой dir
аналогично делаем и в случае с третьей версией утилиты.
Как установить Iperf в CentOS 7
Хочу отметить, что в CentOS 7 и CentOS 8, придется делать слегка иначе. Производить инсталляцию я буду в последней версии CentOS 7, которую поставил ранее.
Начнем с установки Iperf2, для этого выполните команду:
У вас должна выскочить ошибка
Давайте посмотрим список репозиториев, делается это командой:
Как видим, список будет вот такой:
Напоминаю, что утилита Iperf является дополнительным пакетом, который не входит в основные репозитории, это прекрасно описано в Вики http://fedoraproject.org/wiki/EPEL. Дополнительные пакеты для Enterprise Linux (EPEL) — это одобренный сообществом репозиторий, который указан в вики CentOS в разделе «Доступные репозитории для Linux», в котором отмечается, что хотя репозитории сообщества не связаны с проектом CentOS, эти репозитории часто рекомендованы сообществом. Выполните команду:
Как видите в файле yum.repos.d прописаны подключенные репозитории, и тут не хватает репозитория epel-release.
Давайте установим epel-release, для этого выполните:
Пробуем теперь посмотреть список репозиториев в файле yum.repos.d и видим, что epel появился.
Произведем установку Iperf
Все успешно выполнено. Конечно вам никто не запрещает подключить репозиторий от седьмой версии CentOS в восьмую, но они могут конфликтовать в будущем по зависимостям. Поэтому, если у вас CentOS 8, то я рекомендую сделать вот так.
Установка iperf на CentOS 8
Ранее, я так же установил CentOS 8 в тестовой среде. Хочу отметить, что если вы попытаетесь добавить репозиторий epel-release командой:
То он успешно установится, но когда вы попытаетесь сделать поиск iperf по нему, то обнаружите, что восьмая ветка не содержит данной утилиты.
Как я и писал выше не желательно устанавливать epel 7 и 8 версии репозитория, я лично в такой ситуации просто выхожу подобным образом. Я открываю сайт https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/ и ищу нужный мне пакет, копирую на нужный мне прямую ссылку.
Далее я устанавливаю в CentOS 8 пакет wget, для этого выполняем:
Далее скачиваем пакет, ссылку на который мы заранее выяснили.
Далее производим установку iperf2 в системе, через выполнение команды:
Так же для CentOS 8 рекомендуется включить репозиторий PowerTools, поскольку пакеты EPEL могут зависеть от пакетов из него
Установка iperf3 в CentOS 7 и 8
В CentOS 8 с установкой Iperf3 еще проще, так как это пакет является уже частью стандартных репозиториев, чтобы его поставить просто введите:
Если мы имеем дело с CentOS 7 и ниже, то нужно добавлять репозиторий epel-release
Открытие портов Iperf на CentOS
После того. как вы произвели инсталляцию пакета, вам необходимо открыть порты, которые будет слушать ваша служба при подключении к ней. Напоминаю, что порты по умолчанию у iperf и iperf3, это 5201. Для решения этой задачи мы выполним две команды:
firewall-cmd —permanent —add-port=5201/udp
Проверим слушает ли сервер входящие подключения по порту 5210, для этого выполните:
Источник