Замер скорости интернета iperf

Определяем пропускную способность сети с помощью Iperf

Как определить реальную скорость сети Интернет или канала связи? Первое, что приходит на ум, воспользоваться онлайн-сервисом типа SPEEDTEST или Яндекс.Интернетометр . Однако, для компьютера или ноутбука, находящегося в локальной сети, ориентироваться на показатели подобных тестов не стоит.

Напомню о некоторых моментах, на которые стоит обратить внимание при тестировании. Кроме вас в сети имеются и другие пользователи, потому лучше всего проводить измерения либо непосредственно на роутере, либо отключив всех остальных пользователей. Стоит учитывать и тот факт, что в локалке могут быть выставлены собственные лимиты для подключений или вы будете ограничены скоростью работы Wi-Fi. Но это касается только Интернет. А как быть в случае, когда нужно узнать скорость передачи данных между отдельными компьютерами или реальную скорость обмена данными с сервером?

Например, в Windows имеется встроенное средство для мониторинга сети, в реальном времени показывающее нагрузку на сетевых интерфейсах, но делается он это тоже весьма условно. Для более точного измерения скорости обмена данными между компьютерами существует специальная кроссплатформенная утилита iperf . Она работает в режиме клиент-сервер и не требует установки (достаточно просто скопировать ее на два компьютера).

Измерение скорости сети с помощью утилиты iperf

Так как Iperf не входит в стандартный дистрибутив Windows, его необходимо скачать отдельно. Во всех unix-подобных системах (Linux, FreeBSD) iperf можно легко найти в репозиториях.

  • Страничка разработчика iperf http://software.es.net/iperf/
  • Страничка, откуда можно загрузить готовые исполняемы файлы iperf https://iperf.fr/iperf-download.php

Утилита iperf работает в клиент-серверном режиме, то есть на одном конце запускается в режиме «сервер», а на втором в режиме «клиент», который и генерирует трафик для измерения скорости. Общий вид использования утилиты выглядит так:

iperf [-s|-c host] [options]

В самом простом случае (он же и основной) запуск iperf происходит из командной строки следующим образом:

iperf -c XX.XX.XX.XX — на клиенте, где XX.XX.XX.XX — IP-адрес сервера.

В сети много описаний более старые версии, в которых по умолчанию тестируется только входящий или исходящий трафик. Я же рекомендую использовать современную версию iPerf 3.1.3, где сразу выдаётся нужный результат без дополнительных ключей.

Подробнее о ключах запуска можно узнать, запустив iperf с параметром -h . Какие-то из них подходят только для клиента, какие-то для сервера, есть и общие. Вот некоторые из них:

  • -s, —server — запустить как сервер и отображать всю информацию на экран;
  • -c, —client — запустить как клиент и соединиться с сервером;
  • -p, —port — порт, по которому будет происходить соединение (по умолчанию 5001);
  • -D, —daemon — запустить как сервис (в фоновом режиме);
  • -f, —format — в каком формате показывать скорость (Kbits, Mbits, KBytes, MBytes);
  • -h, —help — вывод справки.
Читайте также:  Нестабильный мобильный интернет теле2

Подписывайтесь на канал Яндекс.Дзен и узнавайте первыми о новых материалах, опубликованных на сайте.

Источник

iPerf3 — измерение пропускной способности сети

Network

Утилита iPerf3 позволяет измерить максимальную пропускную способность между двумя узлами сети. Может использовать различные параметры тайминга, протоколов, потоков и т.п. Это кроссплатформенная клиент-серверная программа. Бесплатна.

Умеет генерировать трафик различного типа для анализа пропускной способности сети. Поддерживается многопоточная работа через параметры у клиента. По умолчанию тест выполняется в направлении от клиента к серверу. Для обратного тестирования от сервера к клиенту необходимо использовать ключ -R.

C:\Distr\iperf-3.1.3-win64\iperf-3.1.3-win64>iperf3.exe /? iperf3: parameter error - must either be a client (-c) or server (-s) Usage: iperf [-s|-c host] [options] iperf [-h|--help] [-v|--version] Server or Client: -p, --port # server port to listen on/connect to -f, --format [kmgKMG] format to report: Kbits, Mbits, KBytes, MBytes -i, --interval # seconds between periodic bandwidth reports -F, --file name xmit/recv the specified file -B, --bind bind to a specific interface -V, --verbose more detailed output -J, --json output in JSON format --logfile f send output to a log file -d, --debug emit debugging output -v, --version show version information and quit -h, --help show this message and quit Server specific: -s, --server run in server mode -D, --daemon run the server as a daemon -I, --pidfile file write PID file -1, --one-off handle one client connection then exit Client specific: -c, --client run in client mode, connecting to -u, --udp use UDP rather than TCP -b, --bandwidth #[KMG][/#] target bandwidth in bits/sec (0 for unlimited) (default 1 Mbit/sec for UDP, unlimited for TCP) (optional slash and packet count for burst mode) -t, --time # time in seconds to transmit for (default 10 secs) -n, --bytes #[KMG] number of bytes to transmit (instead of -t) -k, --blockcount #[KMG] number of blocks (packets) to transmit (instead of - t or -n) -l, --len #[KMG] length of buffer to read or write (default 128 KB for TCP, 8 KB for UDP) --cport bind to a specific client port (TCP and UDP, default : ephemeral port) -P, --parallel # number of parallel client streams to run -R, --reverse run in reverse mode (server sends, client receives) -w, --window #[KMG] set window size / socket buffer size -M, --set-mss # set TCP/SCTP maximum segment size (MTU - 40 bytes) -N, --no-delay set TCP/SCTP no delay, disabling Nagle's Algorithm -4, --version4 only use IPv4 -6, --version6 only use IPv6 -S, --tos N set the IP 'type of service' -Z, --zerocopy use a 'zero copy' method of sending data -O, --omit N omit the first n seconds -T, --title str prefix every output line with this string --get-server-output get results from server --udp-counters-64bit use 64-bit counters in UDP test packets [KMG] indicates options that support a K/M/G suffix for kilo-, mega-, or giga- iperf3 homepage at: http://software.es.net/iperf/ Report bugs to: https://github.com/esnet/iperf

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

ipref3

iperf3.exe -с 10.10.12.8 -P 5 -R

Источник

Читайте также:  Легран этика интернет розетка подключение

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

Обновлено

Обновлено: 28.06.2018 Опубликовано: 03.07.2017

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

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

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

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

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

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

[ 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

  • Description — описание юнита;
  • After указывает на юнит, после которого может загружаться наш сервис;
  • Type — тип службы;
  • PIDFile — путь к pid файлу, в котором хранится номер процесса;
  • ExecStart — команда, которую нужно выполнить при старте сервиса (в данном примере запускается iPerf в режиме сервера как демон и создает pid-файл);
  • ExecReload — команда для перезапуска службы;
  • Restart=always — опция, позволяющая автоматически перезапускать сервис, если он перестанет работать;
  • опция WantedBy=multi-user.target позволяет установить для автозапуска службу в обычном многопользовательском режиме.

Разрешаем созданный сервис:

Источник

Оцените статью
Adblock
detector