скорость сетевого соединения
Модераторы: Olej, bellic, vikos
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
скорость сетевого соединения
Как определить реальную скорость сетевого соединения (TCP, например).
В LAN (при прямом, локальном подключении)
Реальную, потому как скорость IP соединения может радикально отличаться от декларируемой скорости физической среды, например:
- при WiFi соединении - от дальности
- при использовании WiFi репитеров - от их числа (есть непроверенные сообщения)
- при использовании PowerLine адаптеров - от качества электросети ... и, возможно, от протяжённости
Кроме того, из-за необходимости синхронизации, передачи объёмов служебной информации и др. физическая скорость среды может в разы превосходить скорость передачи целевой информации через соединение.
Интересует именно вопрос: как измерить скорость передачи потока информации через соединение (а не распространение ICMP/IP пакетов в среде - ping и т.д.).
Естественно, что все остальные хосты LAN на время измерения переводим в режим молчания - исключить коллизии, повторные передачи и вообще загрузку среды LAN при передаче информации.
Описано достаточно много программ-утилит для таких измерений. Но :
- зачастую это Windows .exe (не интересно)
- часто это очень устаревшие программы (не актуально)
Вопрос: какие Linux программы можно удобно и достоверно использовать для измерение пропускной способности канала хост-хост в LAN?
В LAN (при прямом, локальном подключении)
Реальную, потому как скорость IP соединения может радикально отличаться от декларируемой скорости физической среды, например:
- при WiFi соединении - от дальности
- при использовании WiFi репитеров - от их числа (есть непроверенные сообщения)
- при использовании PowerLine адаптеров - от качества электросети ... и, возможно, от протяжённости
Кроме того, из-за необходимости синхронизации, передачи объёмов служебной информации и др. физическая скорость среды может в разы превосходить скорость передачи целевой информации через соединение.
Интересует именно вопрос: как измерить скорость передачи потока информации через соединение (а не распространение ICMP/IP пакетов в среде - ping и т.д.).
Естественно, что все остальные хосты LAN на время измерения переводим в режим молчания - исключить коллизии, повторные передачи и вообще загрузку среды LAN при передаче информации.
Описано достаточно много программ-утилит для таких измерений. Но :
- зачастую это Windows .exe (не интересно)
- часто это очень устаревшие программы (не актуально)
Вопрос: какие Linux программы можно удобно и достоверно использовать для измерение пропускной способности канала хост-хост в LAN?
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Скорость сетевого соединения
Вариант 1 : старый добрый iperf
Присутствует во всех дистрибутивах, но не установлен по умолчанию.
С этого же хоста (бегать лень) устанавливаю iperf на удалённом с которым буду проверять трафик:
Тестируем трафик:
- сервер
- клиент
Это обмен TCP по трассе 192.168.1.101 => 192.168.1.9 :
ноутбук =WiFi=> TP-Link TD-W8101G роутер =Ethernet 100Mbps=> TP-Link TL-PA2010P =PowerLine=> ASUS PL-X52P =Ethernet 100Mbps=> десктоп
Присутствует во всех дистрибутивах, но не установлен по умолчанию.
Код: Выделить всё
[olej@dell ~]$ dnf list iperf
Последняя проверка окончания срока действия метаданных: 5 days, 3:22:48 назад, Thu Jun 2 16:43:33 2016.
Доступные пакеты
iperf.x86_64 2.0.8-2.fc23 fedora
[olej@dell ~]$ sudo dnf install iperf
...
Установлено:
iperf.x86_64 2.0.8-2.fc23
Выполнено!
Код: Выделить всё
[olej@dell ~]$ ssh -X 192.168.1.9
olej@192.168.1.9's password:
Welcome to Linux Mint 17.1 Rebecca (GNU/Linux 3.13.0-37-generic i686)
Welcome to Linux Mint
* Documentation: http://www.linuxmint.com
Last login: Mon Jun 6 12:51:17 2016 from 192.168.1.101
Код: Выделить всё
olej@nvidia ~ $ apt install iperf
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
НОВЫЕ пакеты, которые будут установлены:
iperf
...
Настраивается пакет iperf (2.0.5-3) …
- сервер
Код: Выделить всё
olej@nvidia ~ $ iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 4] local 192.168.1.9 port 5001 connected with 192.168.1.101 port 50226
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-10.6 sec 13.5 MBytes 10.7 Mbits/sec
^C
Код: Выделить всё
[olej@dell ~]$ iperf -c 192.168.1.9
------------------------------------------------------------
Client connecting to 192.168.1.9, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.1.101 port 50226 connected with 192.168.1.9 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 13.5 MBytes 11.3 Mbits/sec
ноутбук =WiFi=> TP-Link TD-W8101G роутер =Ethernet 100Mbps=> TP-Link TL-PA2010P =PowerLine=> ASUS PL-X52P =Ethernet 100Mbps=> десктоп
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Скорость сетевого соединения
Теперь то же самое, но дэйтаграммами UDP:Olej писал(а): Это обмен TCP по трассе 192.168.1.101 => 192.168.1.9 :
ноутбук =WiFi=> TP-Link TD-W8101G роутер =Ethernet 100Mbps=> TP-Link TL-PA2010P =PowerLine=> ASUS PL-X52P =Ethernet 100Mbps=> десктоп
- сервре
Код: Выделить всё
olej@nvidia ~ $ iperf -s -u
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size: 160 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.1.9 port 5001 connected with 192.168.1.101 port 35271
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 3] 0.0-10.0 sec 1.25 MBytes 1.05 Mbits/sec 9.264 ms 0/ 893 (0%)
^C
- клиент
Код: Выделить всё
[olej@dell ~]$ iperf -u -c 192.168.1.9
------------------------------------------------------------
Client connecting to 192.168.1.9, UDP port 5001
Sending 1470 byte datagrams, IPG target: 11215.21 us (kalman adjust)
UDP buffer size: 208 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.1.101 port 35271 connected with 192.168.1.9 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 1.25 MBytes 1.05 Mbits/sec
[ 3] Sent 893 datagrams
[ 3] Server Report:
[ 3] 0.0-10.0 sec 1.25 MBytes 1.05 Mbits/sec 9.264 ms 0/ 893 (0%)
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Скорость сетевого соединения
Могут ли влиять скорости процессоров сервера и клиента iperf (или любого другого измерителя скорости канала) на результаты измерения скорости?Olej писал(а):Вариант 1: старый добрый iperf
(т.е. могут ли вносить существенную разницу в цифру)
Всвтречал, может, кто-то об этом публикации или обсуждения...
Кто является в этом случае ограничивающим фактором: канал передачи или процессоры на концах?
Но это легко проверить:
Код: Выделить всё
olej@nvidia ~ $ cat /proc/cpuinfo | grep 'model name'
model name : Pentium(R) Dual-Core CPU E6600 @ 3.06GHz
model name : Pentium(R) Dual-Core CPU E6600 @ 3.06GHz
olej@nvidia ~ $ iperf -c 127.0.0.1
------------------------------------------------------------
Client connecting to 127.0.0.1, TCP port 5001
TCP window size: 2.50 MByte (default)
------------------------------------------------------------
[ 3] local 127.0.0.1 port 50467 connected with 127.0.0.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 18.5 GBytes 15.9 Gbits/sec
olej@nvidia ~ $ iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 4] local 127.0.0.1 port 5001 connected with 127.0.0.1 port 50467
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-10.0 sec 18.5 GBytes 15.9 Gbits/sec
^C
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Скорость сетевого соединения
Самый медленный процессор, который у меня оказался под рукой:Olej писал(а): Издержки производительности процессора, создающего поток 15.9 Gbits/sec, несоизмеримы со скоростями канала порядка 10-30 Mits/sec (при тех же параметрах), наблюдаемыми на реальном сетевом канале.
Код: Выделить всё
olej@atom ~ $ cat /proc/cpuinfo | grep 'model name'
model name : Intel(R) Atom(TM) CPU 330 @ 1.60GHz
model name : Intel(R) Atom(TM) CPU 330 @ 1.60GHz
model name : Intel(R) Atom(TM) CPU 330 @ 1.60GHz
model name : Intel(R) Atom(TM) CPU 330 @ 1.60GHz
olej@atom ~ $ iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 4] local 127.0.0.1 port 5001 connected with 127.0.0.1 port 53127
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-10.0 sec 3.89 GBytes 3.34 Gbits/sec
^C
olej@atom ~ $ iperf -c 127.0.0.1
------------------------------------------------------------
Client connecting to 127.0.0.1, TCP port 5001
TCP window size: 2.50 MByte (default)
------------------------------------------------------------
[ 3] local 127.0.0.1 port 53127 connected with 127.0.0.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 3.89 GBytes 3.34 Gbits/sec
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Скорость сетевого соединения
Быстрый процессор:Olej писал(а): Самый медленный процессор, который у меня оказался под рукой:
Код: Выделить всё
[olej@dell ~]$ cat /proc/cpuinfo | grep 'model name'
model name : Intel(R) Core(TM) i7 CPU Q 720 @ 1.60GHz
model name : Intel(R) Core(TM) i7 CPU Q 720 @ 1.60GHz
model name : Intel(R) Core(TM) i7 CPU Q 720 @ 1.60GHz
model name : Intel(R) Core(TM) i7 CPU Q 720 @ 1.60GHz
model name : Intel(R) Core(TM) i7 CPU Q 720 @ 1.60GHz
model name : Intel(R) Core(TM) i7 CPU Q 720 @ 1.60GHz
model name : Intel(R) Core(TM) i7 CPU Q 720 @ 1.60GHz
model name : Intel(R) Core(TM) i7 CPU Q 720 @ 1.60GHz
[olej@dell ~]$ iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 4] local 127.0.0.1 port 5001 connected with 127.0.0.1 port 40970
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-10.0 sec 23.6 GBytes 20.3 Gbits/sec
^C
[olej@dell own.WORK]$ iperf -c 127.0.0.1
------------------------------------------------------------
Client connecting to 127.0.0.1, TCP port 5001
TCP window size: 2.50 MByte (default)
------------------------------------------------------------
[ 3] local 127.0.0.1 port 40970 connected with 127.0.0.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 23.6 GBytes 20.3 Gbits/sec
Код: Выделить всё
[olej@dell ~]$ taskset -c 0 iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 4] local 127.0.0.1 port 5001 connected with 127.0.0.1 port 41182
[ ID] Interval Transfer Bandwidth
[ 4] 0.0-10.0 sec 24.2 GBytes 20.8 Gbits/sec
^C
[olej@dell own.WORK]$ taskset -c 2 iperf -c 127.0.0.1
------------------------------------------------------------
Client connecting to 127.0.0.1, TCP port 5001
TCP window size: 2.50 MByte (default)
------------------------------------------------------------
[ 3] local 127.0.0.1 port 41182 connected with 127.0.0.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 24.2 GBytes 20.8 Gbits/sec
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Скорость сетевого соединения
Вариант 2 :
Передавать большой фиксированный объём данных, засекая при этом время всей операции.
Обычно это делают передавая файл с хоста на хост. Это не очень здорово, потому что вовлекаются времена дисковых операций: чтение файла на источнике и запись файла на приёмнике.
Но можно вместо файлов (и там и там) использовать фиктивные устройства (/dev/zero & /dev/null). Как-то так:
Так что в данном случае, скорее, sys
199 MB/c * 8 = 1.595 Gbits/sec
Это тот же процессор, для которого iperf давал значение 20.8 Gbits/sec (см. выше) на локальной петле.
Так что и то, и другое (и т.д.) годится для относительных измерений при реконфигурации сети (что и как влияет) ... но в абсолютных цифрах это всё достаточно бессмысленные цифры, потому что они имеют смысл только прменительно к множеству конкретных условий.
Передавать большой фиксированный объём данных, засекая при этом время всей операции.
Обычно это делают передавая файл с хоста на хост. Это не очень здорово, потому что вовлекаются времена дисковых операций: чтение файла на источнике и запись файла на приёмнике.
Но можно вместо файлов (и там и там) использовать фиктивные устройства (/dev/zero & /dev/null). Как-то так:
Код: Выделить всё
bash-4.2$ time dd bs=1M count=100 if=/dev/zero | nc -v -4 127.0.0.1 1234
Ncat: Version 6.45 ( http://nmap.org/ncat )
Ncat: Connected to 127.0.0.1:1234.
100+0 записей получено
100+0 записей отправлено
Ncat: 104857600 bytes sent, 0 bytes received in 0.52 seconds.
скопировано 104857600 байт (105 MB), 0,525794 c, 199 MB/c
real 0m0.529s
user 0m0.146s
sys 0m0.558s
bash-4.2$ nc -v -l -4 0.0.0.0 1234 > /dev/null
Ncat: Version 6.45 ( http://nmap.org/ncat )
Ncat: Listening on 0.0.0.0:1234
Ncat: Connection from 127.0.0.1.
Ncat: Connection from 127.0.0.1:50447.
Код: Выделить всё
$ man 1 time
...
These statistics consist of (i) the elapsed real time between
invocation and termination, (ii) the user CPU time (the sum of the tms_utime and tms_cutime values in a struct tms as returned
by times(2)), and (iii) the system CPU time (the sum of the tms_stime and tms_cstime values in a struct tms as returned by
times(2)).
...
Код: Выделить всё
bash-4.2$ time dd bs=1M count=1000 if=/dev/zero | nc -v -4 127.0.0.1 1234
Ncat: Version 6.45 ( http://nmap.org/ncat )
Ncat: Connected to 127.0.0.1:1234.
1000+0 записей получено
1000+0 записей отправлено
скопировано 1048576000 байт (1,0 GB), 5,11898 c, 205 MB/c
Ncat: 1048576000 bytes sent, 0 bytes received in 5.12 seconds.
real 0m5.122s
user 0m1.206s
sys 0m5.650s
bash-4.2$ nc -v -l -4 0.0.0.0 1234 > /dev/null
Ncat: Version 6.45 ( http://nmap.org/ncat )
Ncat: Listening on 0.0.0.0:1234
Ncat: Connection from 127.0.0.1.
Ncat: Connection from 127.0.0.1:50449.
Это тот же процессор, для которого iperf давал значение 20.8 Gbits/sec (см. выше) на локальной петле.
Так что и то, и другое (и т.д.) годится для относительных измерений при реконфигурации сети (что и как влияет) ... но в абсолютных цифрах это всё достаточно бессмысленные цифры, потому что они имеют смысл только прменительно к множеству конкретных условий.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Скорость сетевого соединения
Вся эта бадяга со скоростью IP-канала была связана с экспериментами со скоростью WiFi и с WiFi репитерами ... ну и ещё, совсем отчасти, с устройствами PowerLine обмена через электросеть.
Теперь, подобрав инструменты для тестирования, дальнейшие непонятки со скоростью WiFi продолжим здесь: скорость обмена WiFi.
Теперь, подобрав инструменты для тестирования, дальнейшие непонятки со скоростью WiFi продолжим здесь: скорость обмена WiFi.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Скорость сетевого соединения
Ещё раз в другой системе:Olej писал(а):Вариант 1 : старый добрый iperf
Код: Выделить всё
olej@nvidia ~ $ lsb_release -a
No LSB modules are available.
Distributor ID: LinuxMint
Description: Linux Mint 18.1 Serena
Release: 18.1
Codename: serena
olej@nvidia ~ $ iperf
Программа 'iperf' на данный момент не установлена. Вы можете установить её, выполнив:
sudo apt install iperf
Код: Выделить всё
olej@nvidia ~ $ iperf
Программа 'iperf' на данный момент не установлена. Вы можете установить её, выполнив:
sudo apt install iperf
olej@nvidia ~ $ sudo apt install iperf
[sudo] пароль для olej:
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
НОВЫЕ пакеты, которые будут установлены:
iperf
обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 51,0 kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 184 kB.
Пол:1 http://archive.ubuntu.com/ubuntu xenial/universe amd64 iperf amd64 2.0.5+dfsg1-2 [51,0 kB]
Получено 51,0 kБ за 0с (172 kБ/c)
Выбор ранее не выбранного пакета iperf.
(Чтение базы данных … на данный момент установлено 235367 файлов и каталогов.)
Подготовка к распаковке …/iperf_2.0.5+dfsg1-2_amd64.deb …
Распаковывается iperf (2.0.5+dfsg1-2) …
Обрабатываются триггеры для man-db (2.7.5-1) …
Обрабатываются триггеры для doc-base (0.10.7) …
Обработка 1 добавленный файл doc-base...
Регистрация документа в scrollkeeper...
Настраивается пакет iperf (2.0.5+dfsg1-2) …
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Скорость сетевого соединения
Скорость потока в релтайм -
Для выбранного интерфейса (можно для всех без параметров) это выглядит так:
На картинке показано воспроизведение одного ролика с YouTube.
Код: Выделить всё
[olej@dell Jarosovich]$ dnf info nload
Последняя проверка окончания срока действия метаданных: 0:01:31 назад, Sat Mar 25 12:14:05 2017.
Доступные пакеты
Имя : nload
Архитектура : x86_64
Эпоха : 0
Версия : 0.7.4
Релиз : 6.fc23
Размер : 75 k
Репозиторий : fedora
Краткое опи : A tool can monitor network traffic and bandwidth usage in real time
URL : http://www.roland-riegel.de/nload/
Лицензия : GPLv2+
Описание : nload is a console application which monitors network traffic and bandwidth
: usage in real time. It visualizes the in and outgoing traffic using two graphs
: and provides additional info like total amount of transfered data and min/max
: network usage.
[olej@dell Jarosovich]$ sudo dnf install nload
...
Установлено:
nload.x86_64 0.7.4-6.fc23
Выполнено!
Код: Выделить всё
[olej@dell Jarosovich]$ nload eno1
...
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 8 гостей