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)
Iperf, как пользоваться, замерить ширину канала?
Iperf инструкция.
Нужно замерить ширину канала интернета или локальной сети? Тогда вам поможет программа iperf. Преимущество iperf в том, что ее не надо устанавливать и бесплатна.
Вы можете встретить две версии iperf.exe и iperf3.exe, которые не совместимы друг с другом. В обеих версиях поддерживается многопоточная работа (в версии 2 посредством запуска на разных портах, в версии 3 — параметром у клиента).
Как запустить iperf?
Программа должна быть запущена на двух компьютерах.
Первый компьютер – должен играть роль сервера (192.168.0.100), второй – роль клиента (192.168.0.200).
На “сервере” с запускаем программу и вводим команду, которая запускает ее в режиме сервера
1. Копируем файл iperf3.exe на диск C.
2. Запускаем iperf server.
На клиенте аналогично запускаем iperf client, но с указанием адреса сервера 192.168.0.100:
Измерение скорости iperf. Программа в течении 10 секунд проведет тест ширины канала и покажет результат.
Можно тонко настроить тест, используя дополнительные ключи (обратите внимание, что большие\маленькие буквы имеют значение в заданной команде):
Опции для сервера:
-s — запустить как сервер и отображать всю информацию на экран;
-D — запустить как сервис (в фоновом режиме) и не отображать информацию.
Опции клиента:
-b — используемая полоса для UDP (по умолчанию 1Mbit/sec);
-c — запустить как клиент и соединиться с сервером;
-d — тестировать линию в обе стороны;
-n — установить размер передаваемого трафика (нельзя использовать с ключом -t);
-r — производить двунаправленное тестирование по отдельности;
-t — указать время тестирования (по умолчанию 10 сек);
-F — не генерировать трафик, а передавать готовый файл;
-I — ввод данных, передаваемых из STDIN (стандартный поток ввода);
-L — порт, на котором клиент будет принимать двунаправленный трафик;
-P — запуск нескольких потоков параллельно;
-T — время жизни пакета для групповой рассылки (по умолчанию 1);
Общие опции:
-f — в каком формате показывать скорость (Kbits, Mbits, KBytes, Mbytes);
-i — с какими интервалами отображать промежуточные результаты;
-l — размер буфера (по умолчанию 8 KB);
-m — показывать максимальный размер TCP сегмента (MSS);
-p — указать порт, по которому будет происходить соединение (по умолчанию 5001);
-u — использовать UDP вместо TCP;
-w — размер окна TCP;
-B — указание для сервера, на каком интерфейсе принимать трафик;
-C — режим совместимости со старыми версиями;
-M — позволяет изменить максимальный размер TCP сегмента (MSS);
-N — меняет некоторые опции TCP (отключение алгоритма Нагла);
-V — использовать IPV6;
-h — вывод справки.
Для примера, следующие команды покажут тесты:
Замер скорости при окне TCP 2 мбита:
Замер скорости при запуске 10 потоков одновременно:
Iperf, установка и примеры использования тестирования сети
Iperf, установка и примеры использования тестирования сети
Добрый день! Уважаемые читатели и гости одного из крупнейших 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, для этого выполните: