для чего используется 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. Как видите, всё не так уж сложно. А какие вы используете утилиты для проверки скорости работы сети? Напишите в комментариях!
Как пользоваться iPerf
Часть работы системного администратора – контролировать загруженность сетевого оборудования и измерять пропускную способность подключаемых каналов (локальной сети, интернета, включая и беспроводные сегменты Wi-Fi). Популярным инструментом для этого является утилита iPerf. Она работает по клиент-серверному принципу и дает точный результат скорости передачи данных.
Инсталляция iPerf
В большинстве случаев достаточно установить серверную часть приложения локально на «местный» сервер или удаленно на виртуальную машину, а затем подключиться к ней практически с любого компьютера, находящегося в общей ИТ-инфраструктуре. Программа бесплатная, имеет версии под платформы Linux и Windows.
Последние версии дистрибутивов доступны по адресам:
Инсталляция в Ubuntu и Debian осуществляется командой:
В операционных системах CentOS и Fedora она выглядит иначе:
Перед первым запуском рекомендуется принудительно открыть необходимые порты в брандмауэре, чтобы утилита наверняка заработала. По умолчанию протоколы TCP и UDP используют порт 5201. Выполняется открытие командой:
Работать с программой придется в консоли, но особых затруднений это не вызывает, потому что синтаксис и перечень команд относительно просты. Например, запуск серверной части выполняется командой:
На экране появится сообщение Server listening on 5201. Оно означает, что сервер ждет запросов от клиентов (программа остается активной вплоть до перезагрузки операционной системы).
Клиентская часть, если речь идет о рабочих местах на Linux, работает аналогичным образом. Запускаемый файл всего один, различаются только префиксы и параметры вроде IP-адреса.
Синтаксис и опции iPerf
Перечень опций для серверного и клиентского режима несколько различается. Есть общий список, необходимый для первоначальной настройки программы и увеличения удобства ее эксплуатации при проверке нескольких хостов.
Синтаксис запуска программы простой:
Главное, заранее записать серверный IP и без особой необходимости не менять номер порта для подключения клиентских машин.
Общий список опций:
Непосредственно к серверной части программы относятся всего 3 опции:
На клиентской машине перечень настроек несколько шире (речь идет о консольной версии ПО):
Перечисленное количество опций является наиболее популярным. Если хочется освоить их полный пакет, нужно воспользоваться командой $ man iperf3, чтобы получить актуальный список. Он будет сохранен в текстовый файл, если добавить опцию logfile. Но в большинстве случае системному администратору достаточно этих настроек.
Как пользоваться iPerf
В качестве примера использования программы iPerf возьмем опцию -f. Индексы, перечисленные выше, позволяют указывать, в каких единицах измерения хочется увидеть результат. Так, k означает килобиты, m – мегабиты, g – гигабиты, а большие буквы килобайты, мегабайты или гигабайты. Выбор зависит от предполагаемой пропускной способности канала.
Рассмотренный инструмент полезен для тестирования собственных серверов и канала, выделенного провайдером (для поиска узких мест). Также с помощью утилиты можно проверить разных провайдеров интернета для определения наиболее выгодного варианта в соотношении скорость-цена и иных параметров.
Iperf
Существует множество статей, как работать Iperf’ом, но ни одна статья не ответила мне на вопрос как его запустить из под windows 7\8\10 (а вот понадобилось), очень мало статей упонинает какую скорость он измеряет, что подразумевается под пропускной способностью канала. Итак, все по порядку.
Что такое iperf?
Iperf и unix
Iperf в unix-подобных система находится во всех репозиториях и, чтобы его установить, необходимо запусть стандартную инсталляционную команду для вашего дистрибутива, например для debian это:
Для работы с утилитой прото вызываем iperf, например запустить данную утилиту в режиме сервера на 3600 секунд(1 час)
Iperf и windows.
Iperf не входит в стандартный дистрибутив windows, поэтому его надо скачать, например тут
Далее, необходимо поместить этот файл для удобства на диск С:
Если вы 2 раза кликните на то, что скачали, утилита запуститься и сразу «вылетит». Пользоваться ей надо следующим образом
Как видим, исходящая скорость исходящая скорость до сервера 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 в заголовке)
-p, —port n, задаёт порт к которому конектится или на котором вешать сервер (по умолчанию 5001)
-u, —udp, использовать UDP, а не TCP
-w, —window n[KM], TCP размер окна (размер буфера сокета)
-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).
-d, —dualtest, двунаправленный тест одновременно
-r, —tradeoff, У двунаправленный тест индивидуально
-t, —time n, время передачи в секундах (по умолчанию 10 секунд)
-I, —stdin, самому писать что отдавать серверу
-L, —listenport n, порт клиента двунаправленный
-P, —parallel n, число параллельных потоков клиента для запуска
-T, —ttl n, время жизни, для multicast (по умолчанию 1)
Русские Блоги
Подробное руководство по инструменту тестирования производительности сети Iperf3
Ссылка для скачивания этой статьи
1. Введение в Iperf
1. Что такое iperf?
Iperf может тестировать качество полосы пропускания TCP и UDP с различными параметрами и характеристиками UDP и может использоваться для тестирования производительности некоторых сетевых устройств, таких как маршрутизаторы, межсетевые экраны, коммутаторы и т. Д.
2. Функция Iperf
(1) TCP
① Измерьте пропускную способность сети
② Сообщите размер и наблюдаемое значение значения MSS / MTU
③ Поддержка буферизации значения окна TCP по сокету
④ Когда доступен поток P или Win32, поддерживается многопоточность. Клиент и сервер поддерживают одновременное несколько подключений
(2) аспект UDP
① Клиент может создать поток UDP с заданной пропускной способностью
② Измерьте потерю пакетов
④ Поддержка многоадресной рассылки
⑤ Когда доступны P-потоки, поддерживается многопоточность. Клиент и сервер поддерживают одновременное несколько подключений (Windows не поддерживается)
(3) Прочие аспекты
① При необходимости в опциях можно использовать K (кило-) и M (мега-). Например, 131072 байта можно заменить 128 КБ.
② Вы можете указать общее время работы и даже установить общий объем передаваемых данных.
③ В отчете выберите наиболее подходящую единицу для данных.
④ Сервер поддерживает несколько подключений вместо ожидания однопоточного теста.
⑤ Повторно отображать пропускную способность сети, колебания и потерю пакетов через определенные промежутки времени.
⑥ Сервер может работать как фоновая программа.
⑦ Сервер может работать как служба Windows.
⑧ Используйте типичные потоки данных, чтобы проверить влияние сжатия канального уровня на доступную пропускную способность.
Два, установка Iperf
1. Версия iperf
У Iperf есть две версии: версия для Windows и версия для Linux.
(1) Версия для Unix / Linux
Адрес загрузки версии для Linux: http://code.google.com/p/iperf/downloads/list
Чтобы проверить точность, попробуйте использовать тест среды Linux.
(2) Версия для Windows
Версия iperf для Windows называется jperf или xjperf, она медленно обновляется. В настоящее время последняя версия 1.7 (упакована в jperf).
Адрес загрузки версии для Windows: http://sourceforge.net/projects/iperf/files/jperf/jperf%202.0.0/
2. Установите iperf для Windows.
Для версии iperf для Windows загрузите установочный пакет и распакуйте его напрямую, а затем скопируйте распакованные файлы iperf.exe и cygwin1.dll в каталог% systemroot%.
3. Установка iperf для Linux
(1) Онлайн-установка:
Установка Debian и Ubuntu: apt-get install iperf3
(2) Автономная установка: загрузите установочный пакет соответствующей версии.
В-третьих, использование Iperf
1. Рабочий режим Iperf
2. Часто используемые параметры Iperf (достаточно для тестирования)
3. Общие параметры (общие для сервера и клиента)
4. Выделенные параметры сервера
5. Выделенные параметры на стороне клиента
6. Другие параметры
Четыре, вариант использования Iperf
1. Экологическая подготовка:
(1) IP-адрес сервера: 192.168.0.120
(2) IP-адрес сервера: 192.168.0.121
2. Проверьте пропускную способность TCP.
(1) Откройте серверный режим iperf на стороне Сервера и укажите TCP-порт:
(2) Клиент запускает клиентский режим iperf и подключается к серверу.
(3) Результаты мониторинга сервера
① Интервал представляет собой временной интервал.
② Передача представляет собой объем данных, переданных за интервал времени.
(4) Протестируйте многопоточную пропускную способность TCP.
Если метод отправки не указан, клиент iPerf будет использовать только один поток.
(5) Выполните тест полосы пропускания восходящего и нисходящего каналов (двусторонняя передача)
(6) Остановите сервисный процесс iperf3.
Чтобы остановить процесс обслуживания iperf3, нажмите CTRL + z или CTRL + c
3. Проверьте пропускную способность UDP.
(1) Откройте серверный режим iperf на стороне Сервера и укажите порт UDP:
(2) Клиент запускает клиентский режим iperf и подключается к серверу.
(3) Результаты мониторинга сервера
(4) Протестируйте многопоточную пропускную способность UDP.
Если метод отправки не указан, клиент iPerf будет использовать только один поток.
(5) Выполните тест полосы пропускания восходящего и нисходящего каналов (двусторонняя передача)
Пять, введение Jperf
1. Введение в Jperf
2. Операционная среда JPerf2.0
(1) Операционная система: операционная среда Java.
(2) Требования к сети: Jperf может работать в любой IP-сети, включая локальную сеть Ethernet, доступ в Интернет и сеть Wi-Fi.
(3) Другие требования: JPerf должен установить два компонента: сервер JPerf и клиент JPerf.
3. Введение в страницу JPerf2.0
(1) Командная строка Iperf (нельзя вводить напрямую)
❶ Порт прослушивания: 5001
❷ ограничение клиента: ограничение клиента, разрешить только указанные клиентские соединения
❸ Num Connections: максимально допустимое количество подключений, нет ограничений до 0
Адрес сервера: 10.0.115.82, порт: 5001, параллельный поток: 1
(2) Настройки уровня приложения
① Совместимость со старой версией (используется, когда версии сервера и клиента разные)
② Установите тестовый режим: общий размер передаваемых байтов составляет 15 байтов или общее время передачи составляет 15 секунд.
③ Проведите тест двусторонней передачи одновременно
④ Выполните тест двусторонней передачи отдельно, сначала измерьте полосу пропускания от c до s
⑤ Укажите файл для передачи
⑥ Отображение максимального значения MTU для tcp
(3) Настройки транспортного уровня
❶ Установить размер буфера
❷ Укажите размер окна TCP
❸ Установите максимальное значение mtu пакета данных TCP
❹ Установить TCP без задержки
❶ Установите максимальную пропускную способность UDP
❷ Установить буфер UDP
❸ Размер инкапсуляции пакетов UDP: по умолчанию 1470 байт
③ Настройка уровня IP
❶ Укажите значение ttl
❷ Тип услуги (ToS), от 0x10 (минимальная задержка) до 0x2 (минимальная стоимость)
Ссылка для скачивания этой статьи
Приложение: Справочные материалы
1. «Метод проверки производительности сети»
Автор: Справочная документация Ali Cloud
2. «Энциклопедия iperf-Baidu» (статья)
Автор: Baidu Пользователи Википедии
3. «Инструменты оценки производительности сети Linux iperf, тестовая пропускная способность сети CHARIOT» (статья)
4. «Команды Linux-команда iperf»
5. «Учебное пособие по функциям и использованию iPerf для проверки производительности сети»
6. «Учебное пособие по использованию графического инструмента iPerf с графическим интерфейсом Jperf»
7. «Использование 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 выводить результаты серверной части
















