В рамках предыдущего моего проекта, «Видеофон из Raspberry Pi», мне довелось для настройки оборудования и решения проблемы, воспользоваться утилитой Iperf. Программа давно известная в кругу специалистов, работающих с локальными сетями.
Утилита позволяет генерировать трафик для анализа пропускной способности сети.
С ее помощью, довольно просто измерить максимальную пропускную способность сети между двумя устройствами (сервером и клиентом) и провести нагрузочное тестирование канала связи.
Думаю, в связи с увеличением домашних сетевых устройств, она будет довольно востребована, как для поиска и анализа неисправностей (сбоев) в работе, так и для оптимального размещения WiFi оборудования.
В моем примере, программа устанавливалась на Raspberry Pi с установленной системой домашней автоматизации MajorDoMo — базовый образ, и на устройства, работающие под ОС Windows (ноутбук), Android (смартфон, ТВ, медиаплеер).
Под катом немного про установку и тестирование, а также небольшой пример интеграции в систему домашней автоматизации MajorDoMo.
На Raspberry Pi, служащий серdером домашней автоматизации MajorDoMo и работающий под ОС Debian 9, устанавливаем утилиту iperf.
sudo apt-get install iperf
По умолчанию устанавливается версия version 2.0.9. Существуют два варианта Iperf: iperf 2 и iperf 3. Между собой они не совместимы, для установки 3-ей версии, нужно задать команду
sudo apt-get install iperf3
На втором устройстве если возьмем ПК или ноутбук под Windows, то устанавливаем Jperf (устанавливал как 2.0 так и 2.2). Jperf – графическая java-надстройка для Iperf. Надстройка кроссплатформенна, работает как под Windows так и под nix системами. Jperf строит график пропускной способности канала в режиме реального времени. Установка не требуется, в ОС должна быть установлена java-машина.
Подключаем Ethernet сетевым шнуром Raspberry к домашнему роутеру, ноутбук подключен к домашней WiFi сети.
Запускаем утилиту на Raspberry Pi в режиме сервера, Клиент генерирует трафик, сервер ожидает его.
iperf -s -t 3600
где –s запуск в режиме сервера, -t 3600 на время 3600 секунд или 1 час.
На компьютере под Windows запускаем *.bat файл jperf.bat, вводим адрес сервера, оставляем порт по умолчанию, выставляем время тестирования, нажимаем иконку запуска.
На сервере получаем информацию в текстовом виде, на клиенте в графическом:
Для операционной системы Android (смартфон, телевизор, ТВ приставка и т.д.) устанавливаем программу из play market: Magic Iperf. Magic IPERF.
Вводим IP адрес нашего RPI, ключи и запускаем тестирование, передвинув ползунок из положения stopped в started.
Справку по командам (ключам запуска утилиты) можно посмотреть набрав в терминале или мобильном приложении — help (-h).
В качестве дополнения: при использовании системы домашней автоматизации MajorDoMo, базовой конфигурации, образа для Raspberri Pi.
При старте системы, в динамике идет проговаривание IP адреса. Что довольно удобно.
Также у севера прописан hostname (имя, которое присваивается компьютеру, подключенному к сети, которое однозначно идентифицирует в сети и, таким образом, позволяет получить доступ к нему без использования его IP-адреса). Даже не зная IP адреса, можем подключиться SSH терминалом, или же клиентом iperf, набрав вместо IP имя: majordomopi.
Небольшое преимущество RPI, его относительная дешевизна и габариты, позволяющие разместить мини ПК соединив сетевым кабелем его с роутером, будь то в шкафу купе, тумбочке или 19" стойке.
В базовой конфигурации MajorDoMo, по умолчанию есть 3 кнопки управления, которые ничем не заняты, на главной странице системы это: свет 1, свет 2, свет 3.
Попробуем назначить одну из них для тестирования пропускной способности сети.
Открываем стартовую страницу MajorDoMo. Переходим в Панель управления — Устройства — Простые устройства — редактирование Switch 1 — Действия .
В действиях, прописываем строку кода на PHP, которая запускает от пользователя Pi утилиту Iperf в режиме сервера на 600 секунд:
exec ('sudo -u pi iperf -s -t 600 >/dev/null &');
После этого, при нажатии кнопки «свет 1» с главной страницы системы домашней автоматизации, запускается Iperf на 10 минут, и уже далее, с нужного устройства производится тестирование пропускной способности.
Автор: Viktar