Iperf, установка и примеры использования тестирования сети

Обновлено 24.09.2023

Iperf logoДобрый день! Уважаемые читатели и гости одного из крупнейших IT блогов России Pyatilistnik.org. В прошлый раз мы с вами разобрали применение очень полезной утилиты Robocopy, с помощью которой мы мигрировали данные файлового сервера. В сегодняшней статье я хочу вас познакомить с утилитой Iperf, я разберу ее установку, примеры ее использования в вашей инфраструктуре. Хочу отметить, что она должна быть частью вашего административного набора программ.

Содержание статьи:

  1. Что такое утилита Iperf
  2. Виды и версии Iperf
  3. Где скачать Iperf
  4. Как установить Iperf в Windows
  5. Как установить Iperf в CentOS
  6. Как установить Iperf в Debian или Ubuntu
  7. Примеры использования 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 так же можно сделать костыль.

Обратите внимание, что по умолчанию Iperf3 официально не поддерживается в Windows, но это не означает, что он там не будет работать, могут быть нюансы и глюки

Обратите внимание, что все три из этих инструментов находятся в активной разработке, и список уникальных функций для данного инструмента, вероятно, со временем изменится. Исходя из моего опыта, я рекомендуем следующее:

  • Используйте iperf2 для параллельных потоков, двунаправленных тестов или тестов на базе MS Windows.
  • Используйте nuttcp или iperf3 для высокоскоростного тестирования UDP

Где скачать Iperf

Загрузить утилиту можно из разных источников. Если мы говорим про Linux, Unix версии, то вы можете использовать ссылку с github:

https://github.com/esnet/iperf/releases

Если нужно скачать Iperf для Windows, то воспользуйтесь ссылкой с моего ресурса:

Загрузка Iperf3 Windows и с графическим интерфейсом или же с https://sourceforge.net/projects/iperf2/files/

Как установить Iperf в Windows

Чтобы установить Iperf2 или Iperf3 в операционной системе Windows, вам потребуется скачать свежую версию. На выходе у вас будет архивный файл. Далее вы распаковываете архив и получаете файл командной строки и cygwin1.dll

Установка Iperf2 и Iperf3 в Windows

Скачать отдельно cygwin1.dll можно по ссылке https://sourceforge.net/projects/cygwin1-dll/files/

Далее вы открываете командную строку, желательно от имени администратора. После чего пишите команду:

cd и путь до exe файла iperf, например

cd C:\Temp\iperf-2.0.14a-win

После чего вывод списка файлов командой dir

установка iperf2 в Windows

аналогично делаем и в случае с третьей версией утилиты.

Установка Iperf3 в Windows

Как установить Iperf 3 через PowerShell

Ранее я вам рассказывал про репозиторий Choco. Это очень удобный инструмент, который так же позволит вам в Windows 10 или выше, произвести установку Iperf 3. Первое, что вы должны сделать это запустить PowerShell в режиме администратора. Далее добавить себе репозиторий:

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

И сама команда инсталляции.

choco install iperf3

Как установить Iperf 3 через PowerShell

Введите теперь просто iperf3, вы должны получить ее ключи и справку.

Запуск iperf3

Как установить Iperf в CentOS 7

Хочу отметить, что в CentOS 7 и CentOS 8, придется делать слегка иначе. Производить инсталляцию я буду в последней версии CentOS 7, которую поставил ранее.

Начнем с установки Iperf2, для этого выполните команду:

yum install iperf

У вас должна выскочить ошибка

Failed to synchronize cache for repo 'AppStream', ignoring this repo.
Failed to synchronize cache for repo 'BaseOS', ignoring this repo.
Failed to synchronize cache for repo 'extras', ignoring this repo.
No match for argument: iperf
Error: Unable to find a match

Error: Unable to find a match при установке iperf в centos 7

Давайте посмотрим список репозиториев, делается это командой:

yum repolist

Как видим, список будет вот такой:


CentOS-7 - AppStream
CentOS-7 - Base
CentOS-7 - Extras

Напоминаю, что утилита Iperf является дополнительным пакетом, который не входит в основные репозитории, это прекрасно описано в Вики http://fedoraproject.org/wiki/EPEL. Дополнительные пакеты для Enterprise Linux (EPEL) - это одобренный сообществом репозиторий, который указан в вики CentOS в разделе "Доступные репозитории для Linux", в котором отмечается, что хотя репозитории сообщества не связаны с проектом CentOS, эти репозитории часто рекомендованы сообществом. Выполните команду:

ls /etc/yum.repos.d

Просмотр файла yum.repos.d со списком репозиториев CentOS

Как видите в файле yum.repos.d прописаны подключенные репозитории, и тут не хватает репозитория epel-release.

Давайте установим epel-release, для этого выполните:

yum install epel-release

или командой

yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -y

Установка epel-release в CentOS

Пробуем теперь посмотреть список репозиториев в файле yum.repos.d и видим, что epel появился.

Установка Iperf в CentOS 7

Произведем установку Iperf

yum install iperf

Все успешно выполнено. Конечно вам никто не запрещает подключить репозиторий от седьмой версии CentOS в восьмую, но они могут конфликтовать в будущем по зависимостям. Поэтому, если у вас CentOS 8, то я рекомендую сделать вот так.

Установка Iperf в CentOS 7 minimal

Установка iperf на CentOS 8

Ранее, я так же установил CentOS 8 в тестовой среде. Хочу отметить, что если вы попытаетесь добавить репозиторий epel-release командой:

yum install epel-release или yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y

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

dnf repository-packages epel list | grep -i iperf

Поиск iperf в CentOS 8

Как я и писал выше не желательно устанавливать epel 7 и 8 версии репозитория, я лично в такой ситуации просто выхожу подобным образом. Я открываю сайт https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/ и ищу нужный мне пакет, копирую на нужный мне прямую ссылку.

Скачивание пакета iperf для CentOS 8

Далее я устанавливаю в CentOS 8 пакет wget, для этого выполняем:

yum install wget -y

Установка wget в CentOS 8

Далее скачиваем пакет, ссылку на который мы заранее выяснили.

wget https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/i/iperf-2.0.13-1.el7.x86_64.rpm

Как установить Iperf в CentOS 8

Далее производим установку iperf2 в системе, через выполнение команды:

rpm -ivh iperf-2.0.13-1.el7.x86_64.rpm

Инсталляция пакета iperf3

Так же для CentOS 8 рекомендуется включить репозиторий PowerTools, поскольку пакеты EPEL могут зависеть от пакетов из него

dnf config-manager --set-enabled PowerTools

Справка iperf

Установка iperf3 в CentOS 7 и 8

В CentOS 8 с установкой Iperf3 еще проще, так как это пакет является уже частью стандартных репозиториев, чтобы его поставить просто введите:

yum install iperf3

Установка iperf3 в CentOS 8

Если мы имеем дело с CentOS 7 и ниже, то нужно добавлять репозиторий epel-release

yum install epel-release

Открытие портов Iperf на CentOS

После того. как вы произвели инсталляцию пакета, вам необходимо открыть порты, которые будет слушать ваша служба при подключении к ней. Напоминаю, что порты по умолчанию у iperf и iperf3, это 5201. Для решения этой задачи мы выполним две команды:

firewall-cmd --permanent --add-port=5201/tcp

firewall-cmd --permanent --add-port=5201/udp

firewall-cmd --reload

Открытие портов iperf на фаэрволе CentOS 8

Проверим слушает ли сервер входящие подключения по порту 5210, для этого выполните:

iperf3 -s

Продолжение следует.

Автор - Сёмин Иван

One Response to Iperf, установка и примеры использования тестирования сети

  1. Давид:

    Очень крутая утилита, спасибо, что поделились методом установки Iperf в CentOS 8, не знал, что они поменяли слегка этот принцип.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *