Вопрос Как вы проверяете скорость сети между двумя ящиками?


У меня есть гигабитная сеть, установленная в моем доме и несколько ящиков на основе Ubuntu. Из полного любопытства я хотел бы проверить скорость между двумя ящиками. У меня нет никаких проблем со скоростью или чем-то еще, это действительно просто выродка во мне, что любопытно. Плюс, возможно, результаты дадут мне знать, есть ли возможности для улучшения, или что у меня что-то настроено неправильно.

Итак, как вы правильно проверяете скорость сети между ящиками Ubuntu?


142
2017-10-17 17:04


происхождения




ответы:


я использую iperf, Это клиентский сервер, в котором вы запускаете его в режиме сервера на одном конце и подключаетесь к нему с другого компьютера с другой стороны сети.

Обе машины работают:

sudo apt-get install iperf

Мы начнем iperf сервер на одной из машин:

iperf -s

А потом на другом компьютере скажите iperf для подключения в качестве клиента:

iperf -c <address of other computer>

На клиентской машине вы увидите что-то вроде этого:

oli@bert:~$ iperf -c tim
------------------------------------------------------------
Client connecting to tim, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.0.4 port 37248 connected with 192.168.0.5 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.04 GBytes    893 Mbits/sec

Конечно, если вы используете брандмауэр на серверной машине, вам нужно разрешить подключения на порту 5001 или изменить порт с помощью -p флаг.


Вы можете сделать почти то же самое с простым старым nc (netcat), если вы так склонны. На сервере:

nc -vvlnp 12345 >/dev/null

И клиент может передать гигабайт нулей через dd над nc туннель.

dd if=/dev/zero bs=1M count=1K | nc -vvn 10.10.0.2 12345

Как демод:

$ dd if=/dev/zero bs=1M count=1K | nc -vvn 10.10.0.2 12345
Connection to 10.10.0.2 12345 port [tcp/*] succeeded!
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 9.11995 s, 118 MB/s

Выбор времени dd но он должен быть достаточно точным, так как он может выводиться только так быстро, что труба возьмет его. Если вы недовольны тем, что все это можно time вызов.

Помните, что результат в мегабайтов поэтому умножьте его на 8, чтобы получить мегабитыскорость в секунду. Демо выше работает со скоростью 944 Мбит / с.


219
2017-10-17 17:15



У человека есть все ответы на мои вопросы! Моя сеть, по-видимому, не настроена так же, как ваша передача, только с 714 Мбайт и полосой пропускания 598 Мбит / с. Dunno может заглянуть в будущее. Благодарю. - Jacob Schoen
Справедливости ради в другой коробке находится только один переключатель (и 20 метров cat5e), и нет перегруженности. 600 Мбит / с все еще довольно быстро. - Oli♦
Это здорово, но у меня нет корневого доступа к серверу. - Geoff
Try -P 10. Мой результат с единственным подключением похож на jschoens, но с 3 + параллельными соединениями он последовательно подталкивает 920 Мбит / с. - wujj123456
@CMCDragonkai Вы, вероятно, не должны тестировать ресурсы, которые не являются вашими. Тяжелые тесты пропускной способности могут повлиять на краткосрочную стабильность. - Oli♦


То же, что и рекомендация Оли для iperf. Просто хочу добавить несколько пунктов:

  1. Существуют также клиенты Windows, которые позволяют тестировать платформ.
  2. -t <секунд> изменяет длину теста. -P <П> изменяет количество одновременных подключений. Например, iperf -c [целевой IP] -P 10 -t 30 тестирует 10 соединений в течение 30 секунд и дает агрегированные результаты вместе с 10 отдельными скоростями соединения.
  3. Вам не нужно sudo. Вы можете просто загрузить двоичный файл http://iperf.fr/, Он должен работать. Загрузите его с помощью wget, сделать его исполняемым с chmod, и вы можете напрямую запустить двоичный файл. Он работает отлично.

Я обнаружил, что, используя настройки по умолчанию, скорость одиночного соединения колеблется совсем немного. Однако, с 3 + параллельными соединениями, результаты более согласованы на моем гигабайтном коммутаторе. (последовательно @ 910-920 Мбит / с)


19
2018-05-14 07:33





С помощью этот скрипт вы можете легко проверить скорость соединения между вашим компьютером и некоторым удаленным хостом. Пример использования:

$ scp-speed-test.sh user@remote_host 80000
  • user@remote_host ваш хост назначения (у вас должен быть ssh-access этому хозяину)
  • 80000 - примерный размер тестового файла (в kbs), который будет полученные на удаленный хост. Это не обязательный аргумент.

6
2017-08-06 19:40



Это, похоже, проверяет скорость приложения SCP, которое будет ниже, чем тест на более низком уровне. Например, nc использует L4. Конечно, это здорово, если вам больше нужна скорость SCP. - sudo
Имеет проблемы: этот сценарий записывает и читает файл на диск - это медленнее, чем баран, поэтому может быть искусственное замедление. Также отправляет только нули, если они сжаты, это большое искусственное ускорение. Если вы хотите получить псевдослучайные данные, не использовать /dev/random (он может блокировать) или urandom (ссылка на комментарии предположила, что), они могут быть очень медленными, вместо этого используйте dm-crypt (см. часто задаваемые вопросы cryptsetup 2.19. Как я могу стереть устройство с крипторазрядной случайностью?) возможно с файлом в ram. - Xen2050


Если вы хотите протестировать свою локальную сеть Ethernet на более низком уровне, вы можете использовать Etherate, который является бесплатным средством тестирования интерфейса CLI для Linux:

https://github.com/jwbensley/Etherate

Бросать его в микс в качестве инструментов, таких как iPerf (которые очень хороши!) Работают по IP и TCP или UDP. Etherate тестирует непосредственно через уровень 2 Ethernet / OSI.


2
2018-03-26 20:37





Есть также некоторые другие полезные инструменты командной строки для тестирования пропускной способности между двумя хостами:

nuttcp

server$ nuttcp -S
client$ nuttcp -v -v -i1 1.1.1.1 ;# 1.1.1.1 is server's address

nepim

 server$ nepim
 client$ nepim -d -c 1.1.1.1 ;# 1.1.1.1 is server's address

Гобен

 server$ goben
 client$ goben -hosts 1.1.1.1 ;# 1.1.1.1 is server's address

2
2018-02-12 20:15



Как они отличаются друг от друга, и от iperf? Они работают одинаково, что они делают? nuttcp находится в Debian и, по-видимому, «nuttcp основан на nttcp, который, в свою очередь, был улучшен кем-то из Silicon Graphics (SGI) на исходном ttcp, который был написан Майком Муусом в BRL еще до декабря 1984 года, чтобы сравнить производительность стеков TCP с помощью UC Berkeley и BBN, чтобы помочь DARPA решить, какая версия будет размещена в первой версии BSD Unix ». - Xen2050


как я указал в своем комментарии в лучшем ответе, это решение недостаточно эффективно, потому что клиент / сервер не оптимизированный к ... выжимать каждый бит скорости

мое решение:

сделайте ramdisk с обеих сторон (следовательно, вы не ограничены скоростью хранения, и я предлагаю вам сделать их с ramfs, а не tmpfs, поэтому они не поменяются swap ... просто будьте осторожны, чтобы не оставить по меньшей мере 512M свободной памяти для системы это НЕОБХОДИМО, если у вас есть giga ethernet, с такой скоростью даже SSD могут замедлить работу) установить apache на сервере, затем создать ссылку на ramdisk, создать несколько больших файлов на ramdisk (100M-1G, вы можете создать их с dd из / dev / random или скопировать, если у вас есть под рукой) затем зайдите на клиентскую сторону и загрузите их (также на ramdisk этой стороны) с помощью расширенной программы загрузки, я использовал lftp

oh хорошо, разница была большой, от 75mbps, сообщенных iperf и 9.5M / s netcat

в 11.18M / с с моим решением:

1591129421 bytes transferred in 136 seconds (11.18M/s)

0
2017-07-27 07:24





Легко подключить компьютер к первому ящику, подключить другой блок к первому ящику. Затем с вашего компьютера пинг первый блок сохранить результат, пинг другой блок и сделать подстановку.


-3
2017-10-17 17:16



Это показывает задержку в сети, которая является лишь одной частью скорости. Например, 3G-соединение моего телефона имеет огромную задержку (100-300 мс), но он все еще может управлять пропускной способностью 5 Мбит / с. - Oli♦
Не моя вина, если он спросил скорость, но хотел пропускной способности. - Nyamiou The Galeanthrope
Задержка - это время реакции, а не скорость. - wullxz