консольное определение скорости Интернет

Настройка, программирование, распределённые вычисления

Модераторы: Olej, bellic, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

консольное определение скорости Интернет

Непрочитанное сообщение Olej » 08 янв 2023, 10:33

Ещё одно применение консольного измерения скорости - это "прощупать" обратным путём, с удалённого сервера, как там выглядит наш хостер в среде Интернет? какие у него каналы внаружу?

Вот для сервера этого форума:

1. Зашли по SSH на сервер linux-ru.ru (не пытайтесь это повторить! это только для образца - вас туда не пустит :lol: ):

Код: Выделить всё

lej@R420:~$ ./ssh.linux-ru.ru 
Linux 277938.local 4.19.0-23-amd64 #1 SMP Debian 4.19.269-1 (2022-12-20) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sat Jan  7 09:21:05 2023 from 193.28.177.126
2. Проверяю скорость доступа:

Код: Выделить всё

olej@277938:~$ speedtest-cli
Retrieving speedtest.net configuration...
Testing from LLC masterhost (90.156.230.27)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by SUNET (Stockholm) [1227.35 km]: 111.081 ms
Testing download speed................................................................................
Download: 88.97 Mbit/s
Testing upload speed......................................................................................................
Upload: 76.35 Mbit/s
В данном случае это не так и плохо ... думаю.

Таргет-хост для проверки он выбрал там автоматически (чем ему в Казахстане Швеция пришлась :?: :-o :lol: - родственные души :?: :-D ).
Но можно вручную выбрать произвольное место в мире, как уже выше делалось...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

консольное определение скорости Интернет

Непрочитанное сообщение Olej » 25 фев 2023, 03:10

Ещё один способ подсказала техподдержка хостера этого форума:

- зашли по SSH-подключению на сервер вот этого нашего форума:

Код: Выделить всё

olej@R420:~$ ssh olej@90.156.230.27
olej@90.156.230.27's password: 
Linux 277938.local 4.19.0-23-amd64 #1 SMP Debian 4.19.269-1 (2022-12-20) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Feb 26 15:10:57 2023 from 193.28.177.124
- запустить на сервере:

Код: Выделить всё

root@277938:~# curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python -
Retrieving speedtest.net configuration...
Testing from LLC masterhost (90.156.230.27)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Alma-TV (Almaty) [3105.17 km]: 37.485 ms
Testing download speed................................................................................
Download: 95.61 Mbit/s
Testing upload speed................................................................................................
Upload: 97.81 Mbit/s
Это всё тот же speedtest-cli, но без инсталляции его на сервер!

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

консольное определение скорости Интернет

Непрочитанное сообщение Olej » 25 мар 2023, 17:38

Olej писал(а):
05 апр 2017, 21:27
так же утилита
GIT сьраница проекта: sivel / speedtest-cli .

Код: Выделить всё

olej@R420:~$ speedtest-cli --version
speedtest-cli 2.1.3
Python 3.10.6 (main, Mar 10 2023, 10:55:28) [GCC 11.3.0]
Но что здесь оказывается особо интересно:
Python API
Который описан на отдельном wiki: Home
Matt Martz edited this page Jun 10, 2019 · 16 revisions
Units
download - bits/s
upload - bits/s

Код: Выделить всё

olej@R420:~$ python
Python 3.10.6 (main, Mar 10 2023, 10:55:28) [GCC 11.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import speedtest
>>> threads = None
>>> s = speedtest.Speedtest()
>>> servers = []
>>> s.get_servers(servers)
{2.0563687599234575: [{'url': 'http://speedtest.maxnet.ua:8080/speedtest/upload.php', 'lat': '50.0000', 'lon': '36.2500', 'name': 'Kharkiv', 'country': 'Ukraine', 'cc': 'UA', 'sponsor': 'Maxnet LLC', 'id': '20285', 'host': 'speedtest.maxnet.ua:8080', 'd': 2.0563687599234575}, {'url': 'http://speedtest.vega.com.ua:8080/speedtest/upload.php', 'lat': '50.0000', 'lon': '36.2500', 'name': 'Kharkiv', 'country': 'Ukraine', 'cc': 'UA', 'sponsor': 'VEGA Kharkiv', 'id': '21332', 'host': 'speedtest.vega.com.ua:8080', 'd': 2.0563687599234575}, {'url': 'http://st7.utelecom.com.ua:8080/speedtest/upload.php', 'lat': '50.0000', 'lon': '36.2500', 'name': 'Kharkiv', 'country': 'Ukraine', 'cc': 'UA', 'sponsor': 'PROSTO', 'id': '10380', 'host': 'st7.utelecom.com.ua:8080', 'd': 2.0563687599234575}], 47.060248275597445: [{'url': 'http://speedtest.komsomolske.net:8080/speedtest/upload.php', 'lat': '49.5931', 'lon': '36.5152', 'name': 'Slobozhanske', 'country': 'Ukraine', 'cc': 'UA', 'sponsor': 'TK Dialog', 'id': '17745', 'host': 'speedtest.komsomolske.net:8080', 'd': 47.060248275597445}], 72.92007863750467: [{'url': 'http://speedtest.31stk.ru:8080/speedtest/upload.php', 'lat': '50.6000', 'lon': '36.6000', 'name': 'Belgorod', 'country': 'Russia', 'cc': 'RU', 'sponsor': 'LLC "BSTK"', 'id': '20668', 'host': 'speedtest.31stk.ru:8080', 'd': 72.92007863750467}], 129.4376823015934: [{'url': 'http://poltava.speedtest.triolan.com.ua:8080/speedtest/upload.php', 'lat': '49.5867', 'lon': '34.5608', 'name': 'Poltava', 'country': 'Ukraine', 'cc': 'UA', 'sponsor': 'Triolan', 'id': '10867', 'host': 'poltava.speedtest.triolan.com.ua:8080', 'd': 129.4376823015934}], 143.31170815260742: [{'url': 'http://speedtest3.linkfor.ru:8080/speedtest/upload.php', 'lat': '50.7646', 'lon': '37.8623', 'name': 'Novyi Oskol', 'country': 'Russia', 'cc': 'RU', 'sponsor': 'LINKFOR LLC', 'id': '51679', 'host': 'speedtest3.linkfor.ru:8080', 'd': 143.31170815260742}], 148.9290275239613: [{'url': 'http://st.psts.net.ua:8080/speedtest/upload.php', 'lat': '50.9167', 'lon': '34.7500', 'name': 'Sumy', 'country': 'Ukraine', 'cc': 'UA', 'sponsor': 'PSTSNet', 'id': '41167', 'host': 'st.psts.net.ua:8080', 'd': 148.9290275239613}], 153.18438210044883: [{'url': 'http://speedtest2.linkfor.ru:8080/speedtest/upload.php', 'lat': '50.9340', 'lon': '37.8208', 'name': 'Chernyanka', 'country': 'Russia', 'cc': 'RU', 'sponsor': 'LINKFOR LLC', 'id': '51621', 'host': 'speedtest2.linkfor.ru:8080', 'd': 153.18438210044883}], 168.3621206529125: [{'url': 'http://speedtest.elite-line.net:8080/speedtest/upload.php', 'lat': '48.7167', 'lon': '37.5333', 'name': 'Kramatorsk', 'country': 'Ukraine', 'cc': 'UA', 'sponsor': 'Elite-Line', 'id': '4790', 'host': 'speedtest.elite-line.net:8080', 'd': 168.3621206529125}]}
>>> s.get_best_server()
{'url': 'http://speedtest.maxnet.ua:8080/speedtest/upload.php', 'lat': '50.0000', 'lon': '36.2500', 'name': 'Kharkiv', 'country': 'Ukraine', 'cc': 'UA', 'sponsor': 'Maxnet LLC', 'id': '20285', 'host': 'speedtest.maxnet.ua:8080', 'd': 2.0563687599234575, 'latency': 4.837}
>>> s.download(threads=threads)
31370290.465007
>>> s.upload(threads=threads)
38164590.86503316
>>> s.results.share()
'http://www.speedtest.net/result/14526019860.png'
>>> 

Код: Выделить всё

>>> s.get_best_server()
{'url': 'http://speedtest.maxnet.ua:8080/speedtest/upload.php', 'lat': '50.0000', 'lon': '36.2500', 'name': 'Kharkiv', 'country': 'Ukraine', 'cc': 'UA', 'sponsor': 'Maxnet LLC', 'id': '20285', 'host': 'speedtest.maxnet.ua:8080', 'd': 2.0563687599234575, 'latency': 20.841}
>>> s.results.ping
20.841
>>> 
Для сравнения - это же, но как консольное приложение:

Код: Выделить всё

olej@R420:~$ speedtest-cli
Retrieving speedtest.net configuration...
Testing from Radio-Link LLC (193.28.177.124)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Maxnet LLC (Kharkiv) [2.06 km]: 5.269 ms
Testing download speed................................................................................
Download: 32.59 Mbit/s
Testing upload speed......................................................................................................
Upload: 39.03 Mbit/s

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

консольное определение скорости Интернет

Непрочитанное сообщение Olej » 25 мар 2023, 17:46

Olej писал(а):
25 мар 2023, 17:38

Код: Выделить всё

olej@R420:~$ speedtest-cli
Retrieving speedtest.net configuration...
Testing from Radio-Link LLC (193.28.177.124)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Maxnet LLC (Kharkiv) [2.06 km]: 5.269 ms
Testing download speed................................................................................
Download: 32.59 Mbit/s
Testing upload speed......................................................................................................
Upload: 39.03 Mbit/s
Нужно иметь в виду!
Предыдущее изменрение сделано в LAN (большой) на сервере, сегмент которого подключен к Интернет WAN роутеру через PowerLine (те же эффекты будут иметь место для разгообразных WiFi соединителей). А вот тот же тест с хоста той же LAN, но в сегменте соединённом с роутером 1Gb/s Ethernet непосредственно:

Код: Выделить всё

olej@nvme:~$ speedtest-cli
Retrieving speedtest.net configuration...
Testing from Radio-Link LLC (193.28.177.124)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Maxnet LLC (Kharkiv) [2.06 km]: 13.344 ms
Testing download speed................................................................................
Download: 46.98 Mbit/s
Testing upload speed......................................................................................................
Upload: 49.15 Mbit/s
Хорошо видно, что скорость с 50Mb/s до 30-40b/s съёл PowerLine.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

консольное определение скорости Интернет

Непрочитанное сообщение Olej » 25 мар 2023, 17:53

Olej писал(а):
25 фев 2023, 03:10

Код: Выделить всё

root@277938:~# curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python -
...
Это всё тот же speedtest-cli, но без инсталляции его на сервер!
Ничего удивительного, если сам проект прописан на Python:
Olej писал(а):
25 мар 2023, 17:38
Python API
Olej писал(а):
25 мар 2023, 17:46
А вот тот же тест с хоста той же LAN, но в сегменте соединённом с роутером 1Gb/s Ethernet непосредственно:
И запуск на этом же хосте LAN без скачивания копии speedtest-cli приложения :!:

Код: Выделить всё

olej@nvme:~$ curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python3 -
Retrieving speedtest.net configuration...
Testing from Radio-Link LLC (193.28.177.124)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Maxnet LLC (Kharkiv) [2.06 km]: 7.235 ms
Testing download speed................................................................................
Download: 48.34 Mbit/s
Testing upload speed......................................................................................................
Upload: 49.02 Mbit/s
И это, пожалуй, наилучший вариант консольного тестирования скорости Интрнет для своих хостов в LAN, или для подключенных через SSH удалённых хостов где-то по сети.

Ответить

Вернуться в «Сети»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 25 гостей