измерение скорости доступа к серверу с помощью iperf
Применимость: Linux, windows
Слова для поиска: benchmark
Задача:
Нужно измерить реальную скорость доступа к серверу
Решение:
К сожалению общедоступные сервисы для измерения скорости доступа нельзя считать объективными.
Надо понимать, что это коммерческие проекты со специфическими задачами.
Измерения скорости доступа правильнее производить с помощью специальных утилит в конкретных условиях.
Iperf
Iperf — кроссплатформенная консольная клиент-серверная программа — генератор трафика для тестирования пропускной способности сети.
Для измерения требуется два хоста (компьютера). Например виртуальный сервер на хостинге и ваш ПК.
Размееется, лучше использовать другой сервер расположенный в сети с быстрыми и не нагруженными каналами связи.
Базовые параметры
Для тестирования производительности сети в течение 10 секунд:
На сервере выполняется команда:
iperf -s
На клиенте:
iperf -c server_host
Пример 1
Сервер:
iperf -s ------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 85.3 KByte (default) ------------------------------------------------------------Клиент:
iperf -c 95.169.186.76 ------------------------------------------------------------ Client connecting to 95.169.186.76, TCP port 5001 TCP window size: 16.0 KByte (default) ------------------------------------------------------------ [ 3] local 77.72.128.66 port 38250 connected with 95.169.186.76 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 96.3 MBytes 80.5 Mbits/sec
Пример 2
На одной из сторон запускаем программу в режиме сервера:
iperf -s -p 42113 -l 256K -w 256K
На другой стороне запускаем программу с буферами по 256К на запись и чтение в режиме клиента который создает 10 потоков на протяжении 120 секунд:
iperf -c 77.72.128.72 -p 42113 -l 256K -w 256K -P 10 -t 120
Результат выполнения команды:
iperf -c 77.72.128.72 -p 42113 -l 256K -w 256K ------------------------------------------------------------ Client connecting to 77.72.128.72, TCP port 42113 TCP window size: 256 KByte (WARNING: requested 256 KByte) ------------------------------------------------------------ [ 4] local 95.169.186.76 port 46549 connected with 77.72.128.72 port 42113 [ ID] Interval Transfer Bandwidth [ 4] 0.0-10.0 sec 54.2 MBytes 45.5 Mbits/sec [root@km31618 html]# iperf -c 77.72.128.72 -p 42113 -l 256K -w 256K -P 10 -t 120 ------------------------------------------------------------ Client connecting to 77.72.128.72, TCP port 42113 TCP window size: 256 KByte (WARNING: requested 256 KByte) ------------------------------------------------------------ [ 5] local 95.169.186.76 port 46551 connected with 77.72.128.72 port 42113 [ 6] local 95.169.186.76 port 46552 connected with 77.72.128.72 port 42113 [ 14] local 95.169.186.76 port 46559 connected with 77.72.128.72 port 42113 [ 8] local 95.169.186.76 port 46553 connected with 77.72.128.72 port 42113 [ 10] local 95.169.186.76 port 46555 connected with 77.72.128.72 port 42113 [ 11] local 95.169.186.76 port 46556 connected with 77.72.128.72 port 42113 [ 12] local 95.169.186.76 port 46557 connected with 77.72.128.72 port 42113 [ 9] local 95.169.186.76 port 46554 connected with 77.72.128.72 port 42113 [ 13] local 95.169.186.76 port 46558 connected with 77.72.128.72 port 42113 [ 4] local 95.169.186.76 port 46550 connected with 77.72.128.72 port 42113 write2 failed: Connection reset by peer [ ID] Interval Transfer Bandwidth [ 14] 0.0- 0.0 sec 188 KBytes 69.9 Mbits/sec [ ID] Interval Transfer Bandwidth [ 5] 0.0-120.0 sec 152 MBytes 10.6 Mbits/sec [ ID] Interval Transfer Bandwidth [ 8] 0.0-120.1 sec 154 MBytes 10.8 Mbits/sec [ ID] Interval Transfer Bandwidth [ 12] 0.0-120.1 sec 152 MBytes 10.6 Mbits/sec [ ID] Interval Transfer Bandwidth [ 10] 0.0-120.1 sec 153 MBytes 10.7 Mbits/sec [ ID] Interval Transfer Bandwidth [ 13] 0.0-120.1 sec 152 MBytes 10.6 Mbits/sec [ ID] Interval Transfer Bandwidth [ 6] 0.0-120.1 sec 154 MBytes 10.7 Mbits/sec [ ID] Interval Transfer Bandwidth [ 4] 0.0-120.2 sec 154 MBytes 10.8 Mbits/sec [ ID] Interval Transfer Bandwidth [ 11] 0.0-120.2 sec 142 MBytes 9.90 Mbits/sec [ ID] Interval Transfer Bandwidth [ 9] 0.0-120.4 sec 135 MBytes 9.41 Mbits/sec [SUM] 0.0-120.4 sec 1.32 GBytes 94.0 Mbits/secтаким образом я получил сумаррную ширину канала 94.0 Mbits/sec, что вполне соотвествует скорости используемых каналов для данного сервера.
Пример 3
Запуск сервера в UDP-режиме с выводом результатов раз в секунду, на порту 65005
iperf -u -s -i1 -p 65005
Тестирование UDP c длиной 100 байт со скоростью 20 Кбит/с в течение 180 секунд (имитация VoIP трафика, запускать нужно в обе стороны).
iperf -u -c server_host -l100 -b20k -t180
Послать поток 10 мегабит, на порт 65005
iperf -n 10m -p 65005 -c server_host
Вывод:
[[|ID]] Interval Transfer Bandwidth Jitter Lost/Total Datagrams [[| 4]] 0.0- 1.0 sec 1.3 MBytes 10.0 Mbits/sec 0.209 ms 1/ 894 (0.11%)
Ссылки
- Рекомендации магистрального провайдера ТрансТелеКом по измерению емкости предоставленного порта
Актуальность: 2011/03/09 15:20