Утилита Iperf для тестирования сети

Iperf — кроссплатформенная консольная клиент-серверная программа — генератор TCP и UDP трафика для тестирования пропускной способности сети.


Возможности

Iperf позволяет измерить производительность сети (TCP и UDP) и поэкспериментировать с настройками приложения и хоста. Имеется версия под Windows (устанавливается как сервис: -s -D). Так же как и при использовании netperf предварительно на удалённом конце запускается iperf в режиме сервера. В момент измерения с нашей стороны запускается iperf в режиме клиента. Если сервер запускается в интерактивном режиме, то он также выдаёт результаты измерения. При запуске теста между клиентом и сервером устанавливается управляющее соединение (по умолчанию - 5001/tcp), тестовые данные пересылаются по (первый попавшийся "пользовательский" порт). Имеется также графическая "морда" Jperf и библиотека для написания своих тестов. Позволяет определить:

  • пропускную способность сети в режиме TCP
  • величину окна TCP по умолчанию и оптимальное значение
  • пропускную способность сети в режиме UDP при заданной производительности
  • потери UDP пакетов
  • отклонения в задержках UDP пакетов (синхронизация времени не требуется)
  • наличие обработки ToS
  • обработка групповых рассылок (клиент посылает пакеты по групповому адресу, несколько серверов могут получать пакеты по этому адресу; только UDP)
  • Ключи (при указании размеров можно использовать суффиксы K и M)

Ключи

____ Значение
-B IP-адрес (задаётся на стороне сервера, привязаться к указанному адресу, обычно используется для тестирования групповых рассылок)
-b ширина-канала (для UDP тестирования, задаётся на клиентской стороне; по умолчанию - 1Mbps)
-c адрес-сервера (режим клиента)
-D (сервер в фоновом режиме, стандартный вывод можно переназначить в файл)
-d (тест в обе стороны одновременно; см. -L)
-F имя-файла (использовать указанный файл для передачи)
-f формат-вывода (b - bps, B - Byte/sec и т.д.)
-I (использовать стандартный ввод для передачи)
-i секунд (интервал между промежуточными результатами, в т.ч. на стороне сервера)
-L номер-порта (входной порт для двухсторонних тестов -d и -r)
-l байт (размер пакетов; по умоляанию используется 8K для TCP и 1470 для UDP)
-M размер-MSS
-m (вывести значение MSS и MTU)
-N (TCP_NODELAY)
-n число-пакетов
-P число-потоков
-p номер-порта (сервер слушает этот порт, клиент подсоединяется к указанному порту)
-r (сначала в одну сторону, затем обратно; см. -L)
-S биты-ToS (2 - минимальная цена, 4 - максимальная надёжность, 8 - максимальная пропускная способность, 16 - минимальная задержка)
-s (режим интерактивного сервера)
-T TTL
-t секунд (время тестирования)
-u (тестирование UDP, необходимо указывать на обеих сторонах, ожидает подтверждения?)
-V (IPv6)
-W (подбор оптимального размера окна TCP, в моей версии отсутствует)
-w размер-окна-TCP (устанавливается вдвое больше указанного)

Можно запускать с правами обычного пользователя.

Шаблоны скриптов

Запуск стандартного сервера

Тест загрузки !!!

Тест выгрузки !!!

Двунаправленный тест !!!

.

Настройка службы Win32

_____ Значение
-o outputfilename
-s -D will install the iPerf service and run it. Messages will be reported into "%windir%\system32\iperflog.txt"
-s -R will uninstall the iPerf service if it is installed

Источники

Leave a Reply