Как протестировать скорость передачи данных с помощью утилиты Iperf
Мы привыкли измерять скорость доступа в интернет. И тут нам помогают много сервисов, упрощая процедуру измерений с помощью браузера или приложений. Но если вам нужно измерить пропускную способность канала связи между двумя вашими устройствами, то speedtest.net увы не поможет.
Речь в статье пойдет об утилите iperf3, которая позволяет измерить скорость передачи данных между двумя узлами, а при определенных условиях и скорость доступа к сети интернет.
Где скачать утилиту iperf
Скачать консольную утилиту iperf3 можно с сайта https://iperf.fr/iperf-download. Для загрузки доступны версии утилиты для разных ОС (Windows, macOS, Ubuntu, Debian, Mint, Fedora, Red Hat, CentOS, openSUSE, Arch Linux, FreeBSD).
Как провести тестирование утилитой iperf
Чтобы выполнить тестирование программа iperf должна быть запущена на двух устройствах. Одно из них будет выполнять роль сервера, а другое роль клиента. Между ними и будет происходить передача данных для измерения пропускной способности соединения.
На устройстве, которое будет выступать в роли сервера необходимо запустить утилиту с ключом -s
iperf3 -s
На втором устройстве, оно будет работать в роли клиента нужно выполнить команду с ключом -с
iperf3 -c <адрес_сервера_iperf3>
Пример работы утилиты iperf
Результаты тестирования скорости
Для достижения достоверного результата, все измерения следует проводить когда ваши устройства не нагружены другими вычислениями, а по каналу связи не передаются данные.
iperf3 -c st.volgograd.ertelecom.ru Connecting to host st.volgograd.ertelecom.ru, port 5201 [ 5] local 192.168.49.149 port 54171 connected to 88.87.66.17 port 5201 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.01 sec 8.88 MBytes 73.7 Mbits/sec [ 5] 1.01-2.01 sec 10.9 MBytes 91.4 Mbits/sec [ 5] 2.01-3.01 sec 11.0 MBytes 92.2 Mbits/sec [ 5] 3.01-4.01 sec 10.5 MBytes 87.8 Mbits/sec [ 5] 4.01-5.01 sec 9.75 MBytes 81.7 Mbits/sec [ 5] 5.01-6.01 sec 10.6 MBytes 89.4 Mbits/sec [ 5] 6.01-7.01 sec 10.9 MBytes 91.5 Mbits/sec [ 5] 7.01-8.00 sec 11.0 MBytes 92.7 Mbits/sec [ 5] 8.00-9.01 sec 11.1 MBytes 92.2 Mbits/sec [ 5] 9.01-10.01 sec 10.8 MBytes 90.2 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate [ 5] 0.00-10.01 sec 105 MBytes 88.3 Mbits/sec sender [ 5] 0.00-10.04 sec 105 MBytes 87.8 Mbits/sec receiver iperf Done.
Параметры команды iperf3
Параметров по-умолчанию вполне достаточно для базовой проверки. Но для более точной проверке и поиске проблем в передаче вы можете использовать дополнительные настройки.
Например, можно увеличить (уменьшить) количество потоков. Это позволит узнать скорость передачи данных на один поток или позволит сымитировав скачку торрентов (многопоточная передача). За это отвечает параметр -P
Если максимальная утилизация канала передачи данных достигается только при большом количестве потоков (более 10), то это говорить о плохом качестве канала связи.
Параметры запуска утилиты iperf
Рассмотрим часто используемые команды iperf3.
Запуск:
iperf3 [-s | -c хост] [параметры]
где
- -s — режим сервера;
- -с — режим клиента.
Общие параметры как для сервера, так и для клиента iperf
-p <порт> | номер порта, на котором будет работать iperf (по-умолчанию — 5201) |
-f [kmgKMG] | формат скорости в результатах теста: k (Кбит), K (Кбайт), m (Мбит), M (Мбайт), g (Гбит), G (Гбайт) |
-i <секунды> | интервал между выводом результата тестирования, в секундах |
-V | более подробный вывод информации |
-d | вывод дополнительной информации для отладки |
-v | показать версию |
-h | вывести на экран справочную информацию |
Основные параметры запуска сервера iperf
-s | запуск сервера c отображением информации на экране |
-D | запуск сервера в фоновом режиме, без отображения информации на экране; будет оставаться запущенным, даже после закрытия окна программы |
Основные опции клиента iperf:
-c <хост> | запуск клиента и подключение к серверу <хосту> |
-u | использовать протокол UDP (по-умолчанию используется TCP) |
-b #[KMG] | аксимальная скорость в битах/сек (0 — отсутствует ограничение); по умолчанию отсутствует ограничение скорости для TCP, а для UDP составляет 1 Мбит/сек |
-t # | продолжительность тестирования в секундах |
-P # | число одновременных параллельных клиентских потоков |
-R | запуск в обратном режиме: сервер отправляет трафик, клиент принимает |
Как протестировать скорость интернета с помощью утилиты iperf
Проверка скорости интернета с помощью утилиты iperf предполагает, что где-то запущен iperf в режиме сервера и вам необходимо на своей стороне запустить iperf в режиме клиента.
Список адресов для тестирования iperf компании Эр-Телеком (Дом.Ру)
В компании Эр-Телеком во многих городах запущены серверы iperf, которые вы можете использовать для проверки скорости интернета.
- st.barnaul.ertelecom.ru
- st.bryansk.ertelecom.ru
- st.voronezh.ertelecom.ru
- st.volgograd.ertelecom.ru
- st.ekat.ertelecom.ru
- st.izhevsk.ertelecom.ru
- st.irkutsk.ertelecom.ru
- st.yola.ertelecom.ru
- st.kzn.ertelecom.ru
- st.kirov.ertelecom.ru
- st.krsk.ertelecom.ru
- st.kurgan.ertelecom.ru
- st.kursk.ertelecom.ru
- st.lipetsk.ertelecom.ru
- st.mgn.ertelecom.ru
- st.chelny.ertelecom.ru
- st.nk.ertelecom.ru
- st.nn.ertelecom.ru
- st.nsk.ertelecom.ru
- st.omsk.ertelecom.ru
- st.oren.ertelecom.ru
- st.penza.ertelecom.ru
- st.perm.ertelecom.ru
- st.rostov.ertelecom.ru
- st.ryazan.ertelecom.ru
- st.samara.ertelecom.ru
- st.spb.ertelecom.ru
- st.saratov.ertelecom.ru
- st.samara.ertelecom.ru
- st.tver.ertelecom.ru
- st.tomsk.ertelecom.ru
- st.tula.ertelecom.ru
- st.tmn.ertelecom.ru
- st.ulsk.ertelecom.ru
- st.ufa.ertelecom.ru
- st.cheb.ertelecom.ru
- st.chel.ertelecom.ru
- st.yar.ertelecom.ru
Как правильно анализировать полученные данные iperf
Если на стандартный настройках результаты ниже ожидаемых, то попробуйте увеличить количество потоков (параметр -P) до 30 или более. Если скорость достигла расчетных значений, значит ваш канал связи не идеален и полностью его использовать вы сможете только при многопоточной передаче данных. Например при скачивании торрентов.
Можно ли получить скорость больше тарифной
При измерениях можно получить неожиданные результаты, когда скорость передачи данных будет намного больше, чем предоставляет оператор связи. Например выполните следующую команду:
iperf3.exe -c 109.195.224.230 -u -b 10M -P 20
При тарифе 100 Мбит по протоколу передачи UDP в 20 потоков мне удалось достичь скорости передачи данных 200 Мбит/сек. Правда воспользоваться этой скорость в реальной жизни вряд ли удастся.