Magic iperf android как пользоваться

Установка, настройка и использование iPerf

iPerf является кроссплатформенным приложением и может быть установлен на любую популярную операционную систему. В данной инструкции будет рассмотрена установка сервера на Linux CentOS и клиента как на последнем, так и Microsoft Windows.

Установка сервера/клиента

По сути, нет отдельного iPerf для сервера или клиента — это один и тот же программный продукт, который может запускаться в режиме сервера или выполнять клиентские команды.

Для начала выполняем установку расширенного репозитория:

yum install epel-release

yum install iperf3

Открываем порт в брандмауэре:

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

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

* в данном примере мы открыли порт 5201 (для iPerf по умолчанию) для пакетов TCP и UDP.

На экране появится:

Сервер ждет запросов.

Клиентские запросы и проверка сервера

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

После можно сразу выполнить команду:

iperf3 -c 192.168.0.15

* где 192.168.0.15 — iPerf сервер.

На клиенте мы увидим что-то подобное:

[ 4] local 192.168.0.20 port 47068 connected to 192.168.0.15 port 5201
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 104 MBytes 873 Mbits/sec 10 391 KBytes
[ 4] 1.00-2.00 sec 110 MBytes 921 Mbits/sec 4 393 KBytes
[ 4] 2.00-3.00 sec 111 MBytes 928 Mbits/sec 1 478 KBytes
[ 4] 3.00-4.00 sec 104 MBytes 875 Mbits/sec 5 423 KBytes

  • 192.168.0.20 — адрес клиента
  • 192.168.0.15 — адрес сервера
  • ID — идентификатор запросов, нужен для ориентирования, если к серверу идет несколько обращений.
  • Interval — промежуток времени в секундах, на протяжении которого выполнялась передача данных.
  • Transfer — сколько было передано данных за интервал времени.
  • Bandwidth — средняя скорость передачи данных за интервал времени.
  • Retr — количество повторно отправленных TCP-сегментов.
  • Cwnd — одновременно переданных данных.

Все ключи запуска iPerf

Общие для сервера и клиента:

Ключ Описание
-p Определить порт, на котором будет слушать сервер или отправлять запросы клиент
-f Формат отчетов — kmgKMG (Kbits, Mbits, KBytes, MBytes, . )
-i Задать интервал, в течение которого выполняется одна проверка
-F Указать файл, из которого будут взяты входные данные для запуска
-A Степень нагрузки на процессор
-B Указать, через какой сетевой интерфейс работать
-V Детализированные сообщения в консоли
-J Вывод в формате json
—logfile Весь вывод в отдельный лог-файл
-d Режим отладки (много сообщений)
-v Показать версию программы
-h Вызвать справку по работе с программой

Для сервера:

Ключ Описание
-s Запустить iPerf в режиме сервера
-D Запустить как демона (как службу)
-I Указать pid-файл
-1 Принять запрос от одного клиента и завершить работу

Для клиента:

Ключ Описание
-c Запустить iPerf в режиме клиента
-u Отправлять UDP-пакеты
-b Формат отчетов для bandwidth (средней скорости)
-t Количество секунд, в течение которых будет идти проверка скорости
-n Объем данных для проверки (применяется вместо времени -t)
-k Количество пакетов для проверки (вместо -t или -n)
-l Длина буфера записи/чтения
-P Число параллельных запросов
-R Обратный режим — сервер отправляет, клиент принимает
-w Размер сетевого окна
-C Установить алгоритм управления перегрузкой TCP
-M Задать максимальный размер MTU
-4 Работать только для IPv4
-6 Работать только для IPv6
-Z Использовать метод «нулевой копии» для отправки данных
-O Опустить первые n секунд
-T Задать префикс для каждой строки вывода

Также самый свежий список ключей можно получить командой:

Автозапуск сервера (создание сервиса в systemd)

По умолчанию, программу нужно запускать вручную. Если мы хотим, чтобы сервер запускался автоматически и работал как служба systemd, выполняем инструкцию ниже.

Создаем юнит в systemd со следующим содержимым:

[Unit]
Description=iPerf Service
After=network.target

[Service]
Type=forking
PIDFile=/run/iperf3.pid
ExecStart=-/bin/iperf3 -s -D -I /run/iperf3.pid
ExecReload=/bin/kill -HUP $MAINPID
Restart=always

Источник

Измерение пропускной способности вашей Wi-Fi и Ethernet сети с помощью iPerf

Что такое iPerf?

IPerf это кроссплатформенная клиент-серверная утилита которая позволяет производить замеры пропускной способности каналов. Клиент-серверная утилита подразумевает под собой, что для проверки скорости между двумя устройствами необходимо будет запустить iperf на одном в режиме «сервер», а на другом в режиме «клиент». Скорость измеряется в направлении от клиента к серверу, т.е. если вы на своем компьютере запустили iperf в режиме «клиент», то результатом будет «исходящая» скорость. Чтобы измерить входящую, небоходимо поменять местами клиент и сервер, либо воспользоваться специальным ключем к команде запуска клиента (описание ключей ниже). Важно отметить, что генерирует трафик только клиентская часть.

Зачем так сложно, если есть speedtest?

Сервис speedtest.net — измеряет ширину вашего интернет канала до некого выбранного сервера. В случае когда вы хотите измерить производительность вашей локальной сети, этот вариант не подходит, так как данный сервис измеряет всю линию до определенного сервера, и узкое горлышко может быть на любом ее участке.

Установка

Официальный сайт iPerf — http://software.es.net/iperf/, там есть только исходники, но в разделе Binary Distributions есть ссылка на отдельный сайт https://iperf.fr/ , где можно скачать установочные пакеты и исполняемые файлы для всех поддерживаемых систем.

Iperf имеется в двух мажорных версиях — 2 и 3, лучше использовать последнюю. Версия 3 поддерживает все функции версии 2, за исключением двунаправленного теста (а надо ли оно?), подробно почитать о различиях между версиями можно на сайте

В случае отсутствия 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 также имеются исполняемые файлы, скачиваем там же

Для любителей Docker также есть образ на dockerhub — networkstatic/iperf3

Использование

Параметры запуска iperf везде одинаковы, поэтому конкретные действия по запуску на всех возможных системах расписывать не буду.

Для тестирования нам нужны два устройства с установленным iperf и канал между ними.

На одном из них (не важно на каком) запускаем сервер:

На втором запускаем клиент:

Начнется процесс измерения, по умолчанию длительностью 10 сек c выводом промежуточных итогов 1 раз в сек. В конце будет показан усредненный результат за все время измерения.

Для увеличения длительности измерения, запускаем клиент добавив параметр -t

Для измерения в обратном направлении запускаем клиент добавив параметр -R

Примеры использования

Пример 1 — чистый Ethernet

Замер между стационарным ПК и моим файловым сервером, подключение проводной гигабит, через гигабитный свич:

Пример 2 — Ethernet — Wi-Fi

Но интересней измерить пропускную способность wi-fi сети. Лучшим способом для этого будет использование одного устройства подключенного проводом к вашему свичу/роутеру (например ПК/ноутбук с гигабитным портом или raspberry pi 3b ) и второго, подключенного по wi-fi (например ноутбук или смартфон).

В моем случае у роутера Xiaomi Mi Router3 проводные интерфейсы только 10/100BaseT, поэтому логично будет запустить сервер прям на роутере (иначе измерение упрется в скорость проводного интерфейса), на прошивке padavan установить iperf можно без проблем командой «opkg install iperf3», клиент на android смартфоне:

Пример 3 — Wi-Fi — Wi-Fi

Даже для android tv нашелся iperf, программа называется analiti, измерил скорость между приставкой Xiaomi MiBox3 и смартфоном через роутер:

Описание всех параметров

Для просмотра всех возможных параметров с описанием (на английском), достаточно запустить iperf без параметров.

В большинстве случаев вполне достаточно запуска c параметрами по умолчанию, как это указано выше в разделе «Использование», для тонкой настройки привожу описание всех параметров iPerf3:

-p, —port # установить порт для прослушивания/подключения (по умолчанию 5001 для iperf2 и 5201 для iperf3)

-f, —format [kmgKMG] формат отчёта: Kbits, Mbits, KBytes, MBytes

-i, —interval # пауза между периодическими отчётами, в секундах

-F, —file name указывает файл который будет передаваться в качестве нагрузки вместо псевдослучайной последовательности

-A, —affinity n/n,m запуск с привязкой к конкретному ядру процессора (только для linux)

-B, —bind привязка к хосту, интерфейсу или групповому адресу

-V, —verbose вывод подробной информации

-J, —json вывод в JSON формате

—logfile f вывод лога в файл

-d, —debug вывод дополнительной информации для отладки

-v, —version вывод версии

-h, —help вывод списка параметров

Только для сервера:

-s, —server запуск в режиме сервера

-D, —daemon запуск в режиме сервера как процесс (демон)

-I, —pidfile file создать PID файл

-1, —one-off закрыть сервер после отработки одного подключения

Только для клиента:

-c, —client запуск в режиме клиента и подключиться к серверу по адресу

-u, —udp использовать UDP, вместо TCP

-b, —bandwidth #[KMG][/#] задать пропускную способность в бит/сек (по умолчанию без ограничений для TCP и 1 Мбит/сек. для UDP)

-t, —time # длительность измерения в секундах (по умолчанию 10 сек)

-n, —bytes #[KMG] количество байт, после передачи которых остановить измерение (вместо длительности по времени -t)

-k, —blockcount #[KMG] количество блоков (пакетов), после передачи которых остановить измерение (вместо длительности -t или объема -n)

-l, —len #[KMG] размер буфера для записи/чтения (по умолчанию 128 KB для TCP и 8 KB для UDP)

задать локальный порт подключения (по умолчанию рандомный порт)

-P, —parallel # количество параллельных потоков

-R, —reverse запуск в обратном направлении (сервер будет отправлять, клиент принимать

-w, —window #[KMG] размер TCP window size / размер буфера

-C, —congestion выбрать алгоритм управления перегрузками TCP (только Linux и FreeBSD)

-M, —set-mss # задать максимальный размера сегмента TCP/SCTP (MTU-40 байт)

-N, —no-delay задать TCP без задержки (отключение алгоритма Нэйгла)

-4, —version4 использовать только IPv4

-6, —version6 использовать только IPv6

-S, —tos N задать «тип сервиса» IP

-L, —flowlabel N задать IPv6 flow label (только Linux)

-Z, —zerocopy использовать «zero copy» метод передачи данных (меньше загрузка CPU)

-O, —omit N не учитывать измерение первых N секунд

-T, —title str префикс для каждой выводимой строки

—get-server-output выводить результаты серверной части

Источник

Magic iperf android как пользоваться

Добрый день! Уважаемые читатели и гости одного из крупнейших 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 так же можно сделать костыль.

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

  • Используйте 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, для этого выполните:

Источник

Читайте также:  Самые свежие новости android
Оцените статью