Для чего используется iperf
Как пользоваться iperf
Программа состоит из клиентской и серверной части, поэтому для работы вам понадобится как минимум два компьютера, подключённых к сети. В этой статье мы рассмотрим как установить и как пользоваться iperf. Обратите внимание, что мы будем говорить об последней версии программы iperf3.
Установка iperf
Как я уже сказал, программа кроссплатформенная, поэтому вы можете использовать её как в Windows, так и в Linux. Для установки в Ubuntu или Debian выполните:
sudo apt install iperf3
А для установки iperf в CentOS или Fedora:
sudo dnf install iperf3
В Windows программа ставится немного по другому. Просто скачайте утилиту из официального сайта и распакуйте куда-нибудь. Сразу же после этого вы сможете её использовать.
Синтаксис и опции iperf
Поскольку утилита имеет как серверную часть так и клиентскую, надо рассматривать обе отдельно. Для запуска сервера используется такой синтаксис:
Теперь давайте рассмотрим общие опции программы:
Теперь разберемся с опциями только для серверной части:
У клиентской части опций чуть больше:
Мы рассмотрели далеко не все опции, а только самые интересные и те, которые будут использоваться в нашей статье. Для просмотра всех опций выполните такую команду после установки программы:
Теперь вы знаете как установить iperf, а также основные её опции, но на этом инструкция не заканчивается. Дальше давайте перейдем к примерам использования iperf3.
Как пользоваться iperf
Для примеров я буду использовать сервер с адресом 192.168.0.101. Адрес клиента не имеет значения. Сначала необходимо запустить серверную часть программы. Для этого выполните:
Вы можете сразу указать в каких единицах измерения хотите видеть результаты. Для этого используется опция -f. Доступны такие варианты:
Аналогично для сервера можно задать порт с помощью опции -p. По умолчанию он работает на порту 5201:
В любом случае, если на сервере установлен брандмауэр, то вам надо разрешить в нём подключение к порту 5201 или тому, который вы выбрали. Например, для ufw команда будет выглядеть так:
sudo ufw allow 5201
Убедится, что сервер запущен можно с помощью команды ss:
Теперь к серверу можно подключаться. Для этого используйте опцию -c. Если вы меняли порт сервера, то здесь его надо указать с помощью опции -p:
В данном примере тест выполняется 10 секунд. Чтобы понять какая сейчас у вас пропускная способность сети следует смотреть на колонку Bitrate. Обращайте внимание на строки под чертой, они отображают среднее значение. В данном примере было передано 113 мебабайт со скоростью 11534 килобайт в секунду.
Если вы хотите видеть вывод сервера на клиенте, достаточно использовать опцию —get-server-output:
Чтобы использовать UDP пакеты вместо TCP используйте опцию -u:
Если вы хотите узнать скорость работы вашего сетевого провайдера и у вас нет сервера в сети, можете использовать один из публичных iperf серверов. Полный список таких серверов можно найти здесь. Например:
Выводы
В этой статье мы рассмотрели как пользоваться iperf 3 для проверки пропускной способности сети, а также разобрались как узнать скорость вашего провайдера с помощью публичных серверов iperf. Как видите, всё не так уж сложно. А какие вы используете утилиты для проверки скорости работы сети? Напишите в комментариях!
Измерение пропускной способности вашей Wi-Fi и Ethernet сети с помощью iPerf
Что такое iPerf?
IPerf это кроссплатформенная клиент-серверная утилита которая позволяет производить замеры пропускной способности каналов. Клиент-серверная утилита подразумевает под собой, что для проверки скорости между двумя устройствами необходимо будет запустить iperf на одном в режиме «сервер», а на другом в режиме «клиент». Скорость измеряется в направлении от клиента к серверу, т.е. если вы на своем компьютере запустили iperf в режиме «клиент», то результатом будет «исходящая» скорость. Чтобы измерить входящую, небоходимо поменять местами клиент и сервер, либо воспользоваться специальным ключем к команде запуска клиента (описание ключей ниже). Важно отметить, что генерирует трафик только клиентская часть.
Зачем так сложно, если есть speedtest?
Сервис speedtest.net — измеряет ширину вашего интернет канала до некого выбранного сервера. В случае когда вы хотите измерить производительность вашей локальной сети, этот вариант не подходит, так как данный сервис измеряет всю линию до определенного сервера, и узкое горлышко может быть на любом ее участке.
Установка
В случае отсутствия iperf в репозитории вашего дистрибуива, можно скачать пакет с сайта, в крайнем случае там же по ссылке перейти на github с исходниками и собрать самостоятельно.
Для windows скачиваем версию в соответствии с разрядностью вашей системы, распаковываем содержимое архива в папку, в которую потом будет удобно переходить в командной строке, например C:\iperf\
Для android имеется два варианта доступные в play market: Magic Iperf и пакет сетевых утилит HE.NET Network Tools (обе программы имеют в своем составе iperf версии 2 и 3)
Для iOS HE.NET Network Tools (в составе iperf версии 2 и 3)
Для macOS также имеются исполняемые файлы, скачиваем там же
Использование
Параметры запуска iperf везде одинаковы, поэтому конкретные действия по запуску на всех возможных системах расписывать не буду.
Для тестирования нам нужны два устройства с установленным iperf и канал между ними.
На одном из них (не важно на каком) запускаем сервер:
На втором запускаем клиент:
Начнется процесс измерения, по умолчанию длительностью 10 сек c выводом промежуточных итогов 1 раз в сек. В конце будет показан усредненный результат за все время измерения.
Примеры использования
Замер между стационарным ПК и моим файловым сервером, подключение проводной гигабит, через гигабитный свич:
Но интересней измерить пропускную способность wi-fi сети. Лучшим способом для этого будет использование одного устройства подключенного проводом к вашему свичу/роутеру (например ПК/ноутбук с гигабитным портом или raspberry pi 3b ) и второго, подключенного по wi-fi (например ноутбук или смартфон).
В моем случае у роутера Xiaomi Mi Router3 проводные интерфейсы только 10/100BaseT, поэтому логично будет запустить сервер прям на роутере (иначе измерение упрется в скорость проводного интерфейса), на прошивке padavan установить iperf можно без проблем командой «opkg install iperf3», клиент на android смартфоне:
Даже для android tv нашелся iperf, программа называется analiti, измерил скорость между приставкой Xiaomi MiBox3 и смартфоном через роутер:
Описание всех параметров
Для просмотра всех возможных параметров с описанием (на английском), достаточно запустить iperf без параметров.
В большинстве случаев вполне достаточно запуска c параметрами по умолчанию, как это указано выше в разделе «Использование», для тонкой настройки привожу описание всех параметров iPerf3:
—logfile f вывод лога в файл
Только для сервера:
Только для клиента:
задать локальный порт подключения (по умолчанию рандомный порт)
—get-server-output выводить результаты серверной части
Использование утилиты iPerf для VoIP-тестирования
Утилита iPerf знакома многим сетевым администраторам, как инструмент для тестирования реальной пропускной способности сетевых каналов и траблшутинга проблем на уровне сети. Это простая и эффективная программа, бесплатная и кроссплатформенная. Она удобна и проста в освоении. В данной статье мы рассмотрим применение iPref,как средства для поиска проблем в сетевой инфраструктуре, как основы VoIP-сети, и разберем примеры […]
Утилита iPerf знакома многим сетевым администраторам, как инструмент для тестирования реальной пропускной способности сетевых каналов и траблшутинга проблем на уровне сети. Это простая и эффективная программа, бесплатная и кроссплатформенная. Она удобна и проста в освоении. В данной статье мы рассмотрим применение iPref,как средства для поиска проблем в сетевой инфраструктуре, как основы VoIP-сети, и разберем примеры тестов, для обнаружения возможных проблем, проявляющихся при работе с VoIP-трафиком. Мы не будем рассматривать базовый функционал данной утилиты, так как материал по данной теме уже приводился в этой статье на нашем сайте.
Установка и особенности
iPref изначально был спроектирован, как инструмент для измерения максимально достижимой полосы пропускания в IP-сетях между хостами. Среди его возможностей работа с протоколами TCP, UDP, SCTP (в iPref3), поддержка IPv4 и IPv6.
Приложение использует модель клиент-сервер, таким образом тестирование линка происходит с обеих сторон: клиент генерирует трафик, сервер принимает его, обрабатывает и предоставляет статистику пользователю. На основании статистики можно делать выводы о пропускной способности линка, сетевом джиттере, потерях при доставке пакетов.
Возможности тестирования и управления потоком, предоставляемые iPref, весьма широки: вы можете создавать одно-/двунаправленный либо обратнонаправленный поток, переопределять клиентов и сервер, тестировать линк между несколькими клиентами и сервером, динамически менять адреса серверов.Параметры потока могут принимать различные типы протоколов, маршрутизацию по портам, битрейт, максимальные значения полосы, используемую задержку, время проведения теста и т.д. Существует также список публичных серверов Ipref, которые можно использовать для тестирования внешних линков. Этот список можно найти на сайте проекта.
Существует две ветки проекта iPerf: собственно iPerf и iPerf3. Они имеют различную кодовую базу и не совместимы между собой (клиенты iPerf не смогут работать с серверами iPerf3 и наоборот). В рамках данной статьи мы будем работать с версией iPerf3, как актуальной. Среди функций, поддерживаемых веткой iPerf3 отметим следующие:
Ipref доступен для всех десктопных платформ, также существует официальное мобильное приложение для Android и iOS.
Варианты применения iPerf в VoIP-телефонии
Нагрузочное тестирование сети
Предположим, что перед Вами возникла задача развернуть сервер VoIP-телефонии в офисе Вашей компании и ее удаленных филиалах. Вы хотите протестировать имеющуюся сетевую инфраструктуру под нагрузкой, дабы узнать, сможет ли она обеспечить стабильное качество обслуживания ваших абонентов при большом количестве звонков.
Для того чтобы обеспечить нагрузочное тестирование сети мы настроим iPerf на генерацию большого количества TCP-трафика, увеличив размер окна TCP до 32KB (по умолчанию размер окна 8KB) и зададим количество потоков равное 8 (имитация восьми одновременных звонков):
Со стороны сервера включим прослушивание на стандартном порту 5201:
Со стороны клиента:
Следующий нагрузочный тест мы проведем, сгенерировав полосу UDP трафика 1Гбит/с одним потоком. Данный тест также позволит нам отследить количество потерь пакетов и сетевой джиттер.
Со стороны клиента запускаем iPerf с параметрами:
Эмуляция RTP-потока
Как известно, в технологии VoIP протокол SIP используется для лишь для установления сессий между устройствами, голосовые и видео данные передаются в RTP потоках. Отследить проблемы с потоком RTP, такие как, например, задержки при передаче голоса в результате некорректной настройки сетевого оборудования можно в том числе с помощью утилиты iPerf.
Проведем тест, симулирующий голосовой трафик по порту 5061:
Со стороны сервера:
Со стороны клиента:
Эмуляция голосового трафика
Теперь с помощью iPerf мы проведем тест сети, моделируя поток голосовых данных в таком же двунаправленном потоке, как это делает наиболее распространенный и часто используемый в VoIP-сетях кодек G.711. Параметры голосового потока можно рассчитать с помощью калькулятора полосы нагрузки: VoIP Bandwidth Calculator.
Наш поток RTP будет использовать битрейт 64кб/с с частотой отправки 50 пакетов в секунду.
Со стороны сервера:
Логирование в процессе тестирования
Начиная с версии 3.1 iPerf позволяет производить запись результатов тестирования в текстовый файл. Также в версии 3.0 введена поддержка вывода в формате JSON. Использование данных опций позволяет производить множественные тесты с отслеживанием операций на каждом этапе тестирования.
Со стороны сервера:
Со стороны клиента:
— logfile — указывает файл для записи вывода.
Для чего используется iperf
Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов России Pyatilistnik.org. В прошлый раз мы с вами разобрали применение очень полезной утилиты Robocopy, с помощью которой мы мигрировали данные файлового сервера. В сегодняшней статье я хочу вас познакомить с утилитой Iperf, я разберу ее установку, примеры ее использования в вашей инфраструктуре. Хочу отметить, что она должна быть частью вашего административного набора программ.
Содержание статьи:
Что такое Iperf
В жизни каждого системного администратора наступает такая ситуация, что у него есть проблемы со скоростью сети между серверами, как физическими, так и виртуальными. В такой ситуации необходимо произвести тестирования пропускной способности сетевого канала между участниками.
Виды и версии 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 так же можно сделать костыль.
Обратите внимание, что все три из этих инструментов находятся в активной разработке, и список уникальных функций для данного инструмента, вероятно, со временем изменится. Исходя из моего опыта, я рекомендуем следующее:
Где скачать 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, для этого выполните команду:
У вас должна выскочить ошибка
Давайте посмотрим список репозиториев, делается это командой:
Как видим, список будет вот такой:
Как видите в файле 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. Для решения этой задачи мы выполним две команды:
Проверим слушает ли сервер входящие подключения по порту 5210, для этого выполните:
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 — запустить как сервис (в фоновом режиме) и не отображать информацию.
Общие опции:
-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 потоков одновременно: