Как правильно протестировать пропускную способность услуги

Для того чтобы убедиться, в том, что пропускная способность предоставленного сервиса не хуже оговоренного контрактного значения, клиент может провести тестирование. Для проведения тестов необходимо осуществить пропуск трафика через магистральную сеть с максимально возможной скоростью. Следует понимать, что трафик пропущенный через сеть в ходе тестирования подлежит таррификации.

Методика тестирования требует соблюдения некоторых условий:



Iperf работает в режиме клиент-сервер: одно приложение запускается в каччестве серверного, а второе – как клиентское. Клиент открывает соединение с сервером и генерирует трафик на него с максимально-возможной скоростью, возможно запустить двухсторонний тест. После окончания сессии рассчитывается значение пропускной способности, которое является усредненным за период теста.

Для получения подсказки об использовании утилиты достаточно набрать iperf –help, так же информацию по использованию можно получить с сайта http://sourceforge.net/news/?group_id=128336 или iperf.fr (с него же можно скачать и версии для Linux b MAC).


Измерения рекомендуется производить не менее чем на трехминутном интервале.

Ниже приведен пример использования утилиты. на клиентской стороне выполняется команда
iperf -c iperf.comcor.ru -w 1M -P 5 -t 180
В примере используется 5 TCP сессий, время теста задано в 180 секунд.
Отчет со стороны клиента:
G:\>iperf -c iperf.comcor.ru -w 1M -P 5 -t 180
------------------------------------------------------------
Client connecting to iperf.comcor.ru, TCP port 5001
TCP window size: 1.00 MByte
------------------------------------------------------------!
local 82.138.0.102 port 2776 connected with 62.117.87.73 port 5001
local 82.138.0.102 port 2774 connected with 62.117.87.73 port 5001
local 82.138.0.102 port 2775 connected with 62.117.87.73 port 5001
local 82.138.0.102 port 2777 connected with 62.117.87.73 port 5001
local 82.138.0.102 port 2778 connected with 62.117.87.73 port 5001
{ ID} Interval Transfer Bandwidth
{1744} 0.0-180.0 sec 130 MBytes 6.07 Mbits/sec
{1776] 0.0-180.0 sec 130 MBytes 6.08 Mbits/sec
{1792] 0.0-180.0 sec 130 MBytes 6.08 Mbits/sec
{1756] 0.0-180.0 sec 130 MBytes 6.08 Mbits/sec
{1840] 0.0-180.0 sec 130 MBytes 6.07 Mbits/sec
{SUM} 0.0-180.0 sec 652 MBytes 30.4 Mbits/sec

Результат нашего теста приведен в нижней строке - {SUM} 0.0-180.0 sec 652 MBytes 30.4 Mbits/sec

Допустимая погрешность измерения до 10%

Почему нельзя полагаться на измерения полосы пропускания, полученные от стандартных программных средств?

На скорость работы приложений может влиять очень много факторов. Один из основных - для передачи данных многие приложения используют протокол TCP, в котором есть ряд параметров, которые могут существенно влиять на скорость его работы, например размер "окна". Данный параметр определяет, сколько данных может передать отправитель без получения подтверждения об их приеме от получателя. В идеальном случае, "окно" должно расти до тех пор, пока не достигнет максимально возможного для данного канала размера. Но в каждой операционной системе этот алгоритм реализован по-разному. В Windows'XX, например, стек TCP/IP оптимизирован под применение в локальных сетях, со скоростями ~10Mbit/s и задержками ~1-70ms. Если RTT превышает указанный промежуток, размер "окна" не увеличивается, а значит остается значение по умолчанию (например MS - 8KB, Solaris - 24KB и т.д.). Даже если "окно" увеличивается, то в Windows 2000 max TcpWindowsSize равно 17520 байт, что при задержке Москва - Владивосток в ~130ms дает максимально возможную скорость передачи для одной TCP сессии между Window's машинами ~135КБ/c(~1Мбит/c). С помощью настроек в реестре Windows можно несколько улучшить ситуацию, но, к сожалению, незначительно. В UNIX-системах ситуация немного лучше.

Тестирование с помощью программы Iperf и использование различных ключей позволяют уйти от параметров по умолчанию для конкретной ОС и протестировать реально возможную пропускную способность каналов.

1 folders, 2 files - Total: 2,80 MB
Filename Filesize Filetime
iperf.exe108,00 KB19.03.2008 17:13:30
jperf-2.0.0.zip2,70 MB10.03.2011 22:19:36