Иногда появляется необходимость померить скорость соединения вашего сервера с интернетом или другим сервером. Я рассмотрю как с помощью утилиты iperf померить скорость соединения между двумя серверами.

Итак нам потребуется сама утилита iperf на обоих машинах:

sudo apt-get install iperf

Напомню, что я по прежнему использую debian squeeze.

После того, как iperf был установлен на подопытных серверах нам потребуется настроить правила firewall, у меня это делается простым добавлением:

iptables -A INPUT -p TCP -s 0/0 --dport 5001 -j allowed

Поясню, данное правило надо применить на одном из серверов, к которому будет осуществляться подключение, порт 5001, это порт по умолчанию для программы iperf.

Теперь на сервере (там, где применили правило firewall) запускаем программу с ключом:

iperf -s

А на клиенте:

iperf -c x.x.x.x

Где x.x.x.x адрес сервера.

Результат, например, будет таким:
На сервере

------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 4] local x.x.x.x port 5001 connected with y.y.y.y port 36905
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-10.3 sec 23.5 MBytes 19.1 Mbits/sec

На клиенте

------------------------------------------------------------
Client connecting to x.x.x.x, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[ 3] local y.y.y.y port 36905 connected with x.x.x.x port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.1 sec 23.5 MBytes 19.6 Mbits/sec

В отчете работы программы все очень наглядно, iperf говорит, что передал 23,5 MBytes со скоростью 19,6 Mbits/sec.

Посмотрим какие еще параметры может принимать iperf

iperf -h
Usage: iperf [-s|-c host] [options]
 iperf [-h|--help] [-v|--version]
Client/Server:
 -f, --format [kmKM]  в каком формате выводить отчет, Kbits, Mbits, KBytes, MBytes
 -i, --interval # seconds between periodic bandwidth reports
 -l, --len #[KM] length of buffer to read or write (default 8 KB)
 -m, --print_mss print TCP maximum segment size (MTU - TCP/IP header)
 -o, --output <filename> output the report or error message to this specified file
 -p, --port # server port to listen on/connect to
 -u, --udp use UDP rather than TCP
 -w, --window #[KM] TCP window size (socket buffer size)
 -B, --bind <host> bind to <host>, an interface or multicast address
 -C, --compatibility for use with older versions does not sent extra msgs
 -M, --mss # set TCP maximum segment size (MTU - 40 bytes)
 -N, --nodelay set TCP no delay, disabling Nagle's Algorithm
 -V, --IPv6Version Set the domain to IPv6
Server specific:
 -s, --server run in server mode
 -U, --single_udp run in single threaded UDP mode
 -D, --daemon run the server as a daemon
Client specific:
 -b, --bandwidth #[KM] for UDP, bandwidth to send at in bits/sec
 (default 1 Mbit/sec, implies -u)
 -c, --client <host> run in client mode, connecting to <host>
 -d, --dualtest Do a bidirectional test simultaneously
 -n, --num #[KM] number of bytes to transmit (instead of -t)
 -r, --tradeoff Do a bidirectional test individually
 -t, --time # time in seconds to transmit for (default 10 secs)
 -F, --fileinput <name> input the data to be transmitted from a file
 -I, --stdin input the data to be transmitted from stdin
 -L, --listenport # port to recieve bidirectional tests back on
 -P, --parallel # number of parallel client threads to run
 -T, --ttl # time-to-live, for multicast (default 1)
 -Z, --linux-congestion <algo> set TCP congestion control algorithm (Linux only)
Miscellaneous:
 -x, --reportexclude [CDMSV] exclude C(connection) D(data) M(multicast) S(settings) V(server) reports
 -y, --reportstyle C report as a Comma-Separated Values
 -h, --help print this message and quit
 -v, --version print version information and quit
[KM] Indicates options that support a K or M suffix for kilo- or mega-
The TCP window size option can be set by the environment variable
TCP_WINDOW_SIZE. Most other options can be set by an environment variable
IPERF_<long option name>, such as IPERF_BANDWIDTH.
Report bugs to <iperf-users@lists.sourceforge.net>

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>