При необходимости измерить фактическую полосу пропускания интернет канала можно воспользоваться консольной утилитой iperf. Это своего рода «генератор» TCP/UDP трафика.
Iperf — кроссплатформенная консольная клиент-серверная программа, предназначена для тестирования пропускной способности интернет канала между двумя компьютерами.
Как работает.
Измерение осуществляется следующим образом, на одном ПК запускаем iperf в режиме «сервер», на втором в режиме «клиент» с указанием ip-адреса первого ПК («сервера»). Через заданное время показывается измеренная информация.
Установка.
Посмотрим, есть ли эта утилита в портах FreeBSD:
# whereis iperf
iperf: /usr/ports/benchmarks/iperf
Есть. Устанавливаем:
# cd /usr/ports/benchmarks/iperf
# make install clean
Несколько секунд и всё готово, можно пользоваться.
Как было сказано ранее iperf кроссплатформенная, по ссылке в конце статьи можно скачать версию для Windows.
Ключи и опции iperf.
Опции для режима «сервер»:
-s - запуск утилиты в режиме сервера
-U - запуск в одном многопоточном режиме UDP
-D - запуск утилиты в режиме сервера как процесс
Опции для режима «клиент»:
-c - запуск режиме клиента
-d - одновременно двунаправленный тест
-n - количество байт для передачи
-r - двунаправленный тест по отдельности
-t – время теста в секундах (по умолчанию 10 секунд)
-F – указать имя файла входных данных, подлежащих передаче из файла
-P - число параллельных потоков для запуска клиента
Общие опции:
-f - [KmKM] формат для отчета: Кбит, Мбит, Кбайт, Мбайт
-h - помочь
-i – задать интервал в секундах между отчетами пропускной способности
-l - [KM] задать длину буфера чтения/записи (по умолчанию 8 КБ)
-m - показывать максимальный размер сегмента (MTU - TCP / IP заголовке)
-o - вывод отчета в указанный файл
-p - установить порт для прослушивания/подключения (по умолчанию 5001)
-u - использовать UDP (по умолчанию TCP)
-w - задать размер окна (размер буфера сокета)
-B - задать интерфейс или групповой адрес
-M - установка максимального размера сегмента (MTU - 40 байт)
-v - информация о версии утилиты
-V - использование IPv6
-y – использовать CSV формат (значения, разделенные запятыми)
Примеры использования.Запустить утилиту в режиме «сервер»:
# iperf –s
Запустить утилиту в режиме «сервер», прослушивать порт 49001 с работой только по UDP протоколу:
# iperf –s –u –p 49001
Запустить утилиту в режиме «клиент» с указанием на сервер с ip-адресом 192.168.5.39:# iperf –c 192.168.5.39
Запустить утилиту в режиме «клиент» с указанием на сервер с ip-адресом 192.168.5.39 с прослушиванием на порт 49001 протоколом UDP и тестировать две минуты:
# iperf –c 192.168.5.39 –t 120 –u –p 49001
Запустить утилиту в режиме «клиент» с указанием на сервер с ip-адресом 192.168.5.39 с прослушиванием на порт 49001 и тестировать 30 секунд с выводом результата каждые 5 секунд:
# iperf –c 192.168.5.39 –t 30 –p 49001 –i 5
Запустить утилиту в режиме «клиент» с указанием на сервер с ip-адресом 192.168.5.39 с выводом результата каждые 5 секунд до тех пор, пока по трафику не пройдёт 200 Мбайт информации:
# iperf –c 192.168.5.39 –n 200М –i 5
Запустить утилиту в режиме «клиент» с указанием на сервер с ip-адресом 192.168.5.39 и тестировать 20 секунд с выводом результата каждые 5 секунд в обе стороны:
# iperf –c 192.168.5.39 –t 20 –i 5 –r
Полезные ссылки:code.google.com/p/iperf/ - домашняя страница проекта
alexof.ru/download/iperf.zip - скачать windiws версию
alexof.ru/page/jperf - графическая java-надстройка для Iperf
Комментариев: 12 RSS
1Sergej26-11-2013 10:28
Почему не упомянули о java-надстройке для iperf ?? С ней более удобно пользоваться.
2Alex03-12-2013 23:11
Согласен, результат более нагляден. В скором постараюсь выложить заметку по этой java-надстройке.
3Alex19-12-2013 21:44
В конце заметки полезные ссылки - jperf
4Олег01-07-2014 09:13
Можно теории побольше. Как устанавливается соединение. Почему выскакивают ошибки, зависает сервер.
5Bolt05-07-2014 22:34
А кто слышал о iperf-серверах? Есть действующие рабочие в интернете?
6Clon07-12-2014 14:17
И как это представлять? iperf на сервере с открытым доступом? первый запустивший тест положет хостинг напрочь! Так чтоли?
7Антон20-01-2015 15:44
iperf.eltel.net
Серв хороший. 100 метров скорости держит.
8OmenRa10-01-2016 22:40
omenra@OmenRa-BB:~/Загрузки/perf/iperf-3.1$ ./bootstrap.sh
Can't find libtoolize, exiting.
что я делаю не так? Xubuntu 15.10
9Alex18-01-2016 12:45
Очень мало деталей для того чтобы что то понять..
Для начала это права (под кем делаете установку?).
Может помочь эта информация с гитхаба:
#! /bin/sh
#
# Copyright (c) 2014, The Regents of the University of California,
# through Lawrence Berkeley National Laboratory (subject to receipt of
# any required approvals from the U.S. Dept. of Energy). All rights
# reserved.
#
# This code is distributed under a BSD style license, see the LICENSE
# file for complete information.
#
# When changes are made to the build infrastructure, invoke this
# script to regenerate all of the autotools-built files.
# Normally, this is only of use to developers.
# Figure out how to invoke libtoolize. On MacOS (with MacPorts)
# it's invoked as glibtoolize.
if libtoolize --version >/dev/null 2>&1; then
libtoolize=libtoolize
elif glibtoolize --version >/dev/null 2>&1; then
libtoolize=glibtoolize
else
libtoolize=""
fi
if [ "x$libtoolize" = "x" ]; then
echo "Can't find libtoolize, exiting."
exit 1
fi
# Execute the various autotools commands in the correct order.
set -x
$libtoolize --copy --force --automake
aclocal -I config
autoheader
automake --foreign --add-missing --copy
autoconf
rm -rf config.cache
Попробуйте сравнить свой bootstrap.sh с этим.
(//github.com/apietila/iperf3/blob/master/bootstrap.sh)
10Аноним18-01-2016 12:54
В большенстве случаев iperf не требует установки, он прекрасно работает из каталога дистрибутива (правда в консольном режиме).
11Гость23-08-2016 22:34
Ссылка на скачивание утилиты не активна, восстановите ссылку! Дайте скачать iperf!
12Alex25-08-2016 09:49
Ссылку восстановил, утилиту положил в zip-архив, можно скачивать.