Speedtest.net na routerze
|
shibby |
Dodano 06-09-2014 14:03
|
SysOp
Posty: 17109
Dołączył: 15/01/2009 20:30
|
Witajcie
Wielokrotnie na forum padało pytanie odnośnie testowania prędkości połączenia internetowego na routerze. Pojawiały się mniej lub bardziej rozbudowane skrypty, które w większości bazowały na komendzie "wget". Wadą tego rozwiązania był fakt, iż testowana była jedynie prędkość downloadu, natomiast upload nadal był niewiadomy.
Dziś trafiłem na ciekawy skrypt, który jest niczym innym jak implementacją speedtest.net w języku python. Co ważne - działa wyśmienicie na tomato i innych podobnych systemach
Wymagania? Skonfigurowane optware oraz zainstalowane pakiety:
- python
-wget-ssl
Posiadacze entware lub openwrt/gargoyle muszą zainstalować analogiczne do ww. paczek składniki.
Ściągamy pakiet:
Cytat cd /opt/bin
wget --no-check-certificate https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py
chmod +x /opt/bin/speedtest_cli.py
Program uruchamiamy komendą (zostanie wybrany najbliższy serwer):
Oto przykładowy wynik wykonania skryptu:
Cytat [root@R7000 root]$ speedtest_cli.py
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Yureco Spolka Akcyjna (176.227.xxx.xxx)...
Selecting best server based on latency...
Hosted by Yureco S.A. (Olesnica) [1.10 km]: 2.193 ms
Testing download speed........................................
Download: 90.46 Mbits/s
Testing upload speed..................................................
Upload: 28.06 Mbits/s
[root@R7000 root]$
Chcąc wskazać wybrany przez nas serwer do testów musimy najpierw zdobyć ID serwera. Posłużymy się tu parametrem "--list" (listuje wszystkie serwery wg odległości) i wygrepujemy szukany przez nas serwer. Przykładowo by znaleźć serwer Skynet z Warszawy wydajemy komendę:
Cytat [root@R7000 root]$ speedtest_cli.py --list | grep Skynet
338) Skynet DC (Warsaw, Poland) [273.81 km]
Liczba 338 to ID tego serwera.
Przetestujmy nasze łącze do tego serwera:
Cytat [root@R7000 root]$ speedtest_cli.py --server=338
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Yureco Spolka Akcyjna (176.227.xxx.xxx)...
Hosted by Skynet DC (Warsaw) [273.81 km]: 8.253 ms
Testing download speed........................................
Download: 90.27 Mbits/s
Testing upload speed..................................................
Upload: 28.53 Mbits/s
[root@R7000 root]$
Dodatkową opcją jest wygenerowanie linku do obrazka. Odbywa się to przez dodanie parametru "--share". Dzięki temu na końcu pomiaru otrzymamy coś na wzór:
Cytat Share results: http://www.speedtest.net/result/3740554995.png
Wynik oczywiście można skierować do pliku. Oto przykład by wynik zapisywał się do pliku, której nazwa zawiera datę pomiaru:
Cytat speedtest_cli.py --server 338 >> /tmp/speedtest-`date +%Y%m%d-%H%M%S`
W efekcie otrzymamy plik /tmp/speedtest-20140906-134447 z naszymi pomiarami. Jak nie trudno się domyślić data wskazuje na pomiar wykonany 06 września 2014 o godzinie 13:44:47 sekund . Wystarczy teraz zmienić katalog docelowy z /tmp ja dysk lub pendrive a samą komendę można wrzucić np. do harmonogramu (uwaga: warto użyć ścieżkę bezwzględną do skryptu czyli /opt/bin/speedtest_cli.py).
Powodzenia!
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+
VM Router: OpenWRT 22.03.4
VM NAS: Synology SA6400
VM VPS: Debian, WWW, Home Assistant
Switch: Netgear MS510TXPP
Switch: Ubiquiti USW-Flex-mini - szt. 2
Wi-Fi: Ubiquiti U6-Lite - szt. 2
|
|
|
|
przemasisko |
Dodano 06-09-2014 18:01
|
Super User
Posty: 550
Dołączył: 17/05/2010 13:56
|
Pięknie działa Dzięki za tutka. |
|
|
|
rafal00004 |
Dodano 06-09-2014 22:01
|
User
Posty: 45
Dołączył: 03/07/2012 14:11
|
Witam.
Moje wyniki pomiaru bezpośrednio z routera są o 1/3 słabsze niż pomiar z kompa w LAN do tych samych serwerów. Może jest to spowodowane tym, że router ma 466 mhz?
Netgear WNR3500Lv2+ Tomato USB-K26RTN-121 AIO
Netgear WNR3500Lv1+ Tomato USB-K26-121 Nocat-VPN
Metron.eu.org
|
|
|
|
przemasisko |
Dodano 06-09-2014 23:11
|
Super User
Posty: 550
Dołączył: 17/05/2010 13:56
|
U mnie na rt-n66u wysyciło pełne 60/6. |
|
|
|
backlit |
Dodano 06-09-2014 23:21
|
Power User
Posty: 290
Dołączył: 30/05/2008 12:42
|
Dzięki za fajny skrypt. Jedna rzecz : Download mam ucięty w wynikach o połowę , ping większy o 15 ms względem testów na www (upload jest ok). Czemu tak nie mam pojęcia.
------------------------
Asus RT-N18U+ 1.28 -130 K26ARM USB AIO-64K
|
|
|
|
Maniek91PL |
Dodano 07-09-2014 00:30
|
Maxi User
Posty: 731
Dołączył: 29/04/2013 21:44
|
root@Thea:/opt/bin# cd /opt/bin
root@Thea:/opt/bin# wget --no-check-certificate https://raw.github.com/sivel/spe
edtest-cli/master/speedtest_cli.py
wget: unrecognized option `--no-check-certificate'
BusyBox v1.21.1 (2014-08-28 14:17:35 CEST) multi-call binary.
Usage: wget [-csq] [-O FILE] [-Y on/off] [-P DIR] [-U AGENT] [-T SEC] URL...
Retrieve files via HTTP or FTP
-s Spider mode - only check file existence
-c Continue retrieval of aborted transfer
-q Quiet
-P DIR Save to DIR (default .)
-T SEC Network read timeout is SEC seconds
-O FILE Save to FILE ('-' for stdout)
-U STR Use STR for User-Agent header
-Y Use proxy ('on' or 'off')
root@Thea:/opt/bin#
!?
Asus RT-AC3200
Rocket M5
APC BACK-UPS RS 1200
Mini Itx ASUS Q87T+ i7-4770S
Alienware m15
Vu+ Solo2
|
|
|
|
kamilj |
Dodano 07-09-2014 00:36
|
Moderator
Posty: 982
Dołączył: 28/12/2011 12:24
|
@Maniek91PL zainstalowałeś
- python
-wget-ssl
??
------------------------------------------------------------------------------
[b] RegulaminOpenlinksys.info v0.1
[url=http://openlinksys.info/forum/viewthread.p
|
|
|
|
Maniek91PL |
Dodano 07-09-2014 00:39
|
Maxi User
Posty: 731
Dołączył: 29/04/2013 21:44
|
tak wgrane
root@Thea:/tmp/home/root# ipkg install python
Installing python (2.5-1) to /opt/...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/mbwe-bluering/cross/stable/python_2.5-1_arm.ipk
Installing python25 (2.5.6-2) to /opt/...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/mbwe-bluering/cross/stable/python25_2.5.6-2_arm.ipk
Installing readline (6.1-2) to /opt/...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/mbwe-bluering/cross/stable/readline_6.1-2_arm.ipk
Installing ncurses (5.7-3) to /opt/...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/mbwe-bluering/cross/stable/ncurses_5.7-3_arm.ipk
Installing bzip2 (1.0.6-1) to /opt/...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/mbwe-bluering/cross/stable/bzip2_1.0.6-1_arm.ipk
Installing openssl (0.9.8v-2) to /opt/...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/mbwe-bluering/cross/stable/openssl_0.9.8v-2_arm.ipk
Installing libdb (4.2.52-3) to /opt/...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/mbwe-bluering/cross/stable/libdb_4.2.52-3_arm.ipk
Installing zlib (1.2.5-1) to /opt/...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/mbwe-bluering/cross/stable/zlib_1.2.5-1_arm.ipk
Installing sqlite (3.8.1-1) to /opt/...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/mbwe-bluering/cross/stable/sqlite_3.8.1-1_arm.ipk
Installing libstdc++ (6.0.2-6) to /opt/...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/mbwe-bluering/cross/stable/libstdc++_6.0.2-6_arm.ipk
Installing ncursesw (5.7-2) to /opt/...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/mbwe-bluering/cross/stable/ncursesw_5.7-2_arm.ipk
Configuring bzip2
update-alternatives: Linking //opt/bin/bzip2 to /opt/bin/bzip2-bzip2
Configuring libdb
Configuring libstdc++
Configuring ncurses
update-alternatives: Linking //opt/bin/clear to /opt/bin/ncurses-clear
Configuring ncursesw
Configuring openssl
Configuring python
Configuring python25
Configuring readline
Configuring sqlite
Configuring zlib
Successfully terminated.
root@Thea:/tmp/home/root# ipkg install wget-ssl
Installing wget-ssl (1.12-2) to /opt/...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/mbwe-bluering/cross/stable/wget-ssl_1.12-2_arm.ipk
Installing libidn (1.25-1) to /opt/...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/mbwe-bluering/cross/stable/libidn_1.25-1_arm.ipk
Configuring libidn
Configuring wget-ssl
Successfully terminated.
root@Thea:/tmp/home/root# cd /opt/bin
root@Thea:/opt/bin# wget --no-check-certificate https://raw.github.com/sivel/spe
edtest-cli/master/speedtest_cli.py
wget: unrecognized option `--no-check-certificate'
BusyBox v1.21.1 (2014-08-28 14:17:35 CEST) multi-call binary.
Usage: wget [-csq] [-O FILE] [-Y on/off] [-P DIR] [-U AGENT] [-T SEC] URL...
Retrieve files via HTTP or FTP
-s Spider mode - only check file existence
-c Continue retrieval of aborted transfer
-q Quiet
-P DIR Save to DIR (default .)
-T SEC Network read timeout is SEC seconds
-O FILE Save to FILE ('-' for stdout)
-U STR Use STR for User-Agent header
-Y Use proxy ('on' or 'off')
Asus RT-AC3200
Rocket M5
APC BACK-UPS RS 1200
Mini Itx ASUS Q87T+ i7-4770S
Alienware m15
Vu+ Solo2
|
|
|
|
rafal00004 |
Dodano 07-09-2014 01:58
|
User
Posty: 45
Dołączył: 03/07/2012 14:11
|
Maniek91PL wpisujesz samo wget, a trzeba w twoim przypadku wpisać tak:
wget-ssl --no-check-certificate https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py
Pozdro
Edytowany przez rafal00004 dnia 07-09-2014 02:04
Netgear WNR3500Lv2+ Tomato USB-K26RTN-121 AIO
Netgear WNR3500Lv1+ Tomato USB-K26-121 Nocat-VPN
Metron.eu.org
|
|
|
|
shibby |
Dodano 07-09-2014 08:26
|
SysOp
Posty: 17109
Dołączył: 15/01/2009 20:30
|
maniek91pl Masz coś z PATH namieszane bo wciąż odpala ci się wget z busyboxa. podaj pełną ścieżkę do nowego wgeta czyli /opt/bin/wget...
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+
VM Router: OpenWRT 22.03.4
VM NAS: Synology SA6400
VM VPS: Debian, WWW, Home Assistant
Switch: Netgear MS510TXPP
Switch: Ubiquiti USW-Flex-mini - szt. 2
Wi-Fi: Ubiquiti U6-Lite - szt. 2
|
|
|
|
Maniek91PL |
Dodano 07-09-2014 10:28
|
Maxi User
Posty: 731
Dołączył: 29/04/2013 21:44
|
nic nie mogę zrobić, bo w koło jest to samo co w temacie :
https://openlinksys.info/forum/viewthread.php?thread_id=18345&pid=136162#post_136162
* mój ostatni post
Coś nie przetestowane jest ten ostatni software na tego asusa
Asus RT-AC3200
Rocket M5
APC BACK-UPS RS 1200
Mini Itx ASUS Q87T+ i7-4770S
Alienware m15
Vu+ Solo2
|
|
|
|
kobrawerde |
Dodano 07-09-2014 11:44
|
Power User
Posty: 357
Dołączył: 07/05/2008 20:07
|
Naprawdę fajny programik do sprawdzania szybkości netu w konsoli. U mnie też jest ten błąd ....ale podpowiedź @shibby i wszystko działa OK
/opt/bin/wget --no-check-certificate https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py
Netgear R7000 - FreshTomato Firmware 2023.5 K26ARM USB AIO-64K
Proxmox VE: (Topton X6C) Intel N100, 32GB RAM, 2x2TB SSD / NVMe
VM NAS: Xpenology SA6400 (TCRP: tinycore-redpill.v1.0.1.0.m-shell)
VM VPS: Debian-12.5.0-xfce , Kodi , Jellyfin
Wi-Fi: Ubiquiti U6-Lite
|
|
|
|
hermes-80 |
Dodano 07-09-2014 11:52
|
VIP
Posty: 3676
Dołączył: 21/04/2009 11:24
|
Pewnie po instalacji bash-a - namieszał ci w pliku /opt/etc/profile.
===============================================================
Netgear WNR3500L v1
Podziękowania dla administracji Openlinksys.info!
|
|
|
|
kobrawerde |
Dodano 07-09-2014 12:48
|
Power User
Posty: 357
Dołączył: 07/05/2008 20:07
|
Cytat Pewnie po instalacji bash-a - namieszał ci w pliku /opt/etc/profile.
Raczej na pewno :-) ...... duuuużo kiedyś mieszałem w systemie .
A co do wyników pomiarów prędkości DL / UP to też mam wrażenie iż hamulcem poprawności jest procek. Sprawdzałem ten skrypt pod systemem OpenELEC ( HTPC ION2 ) i wyniki są troszkę wiarygodniejsze.
Netgear R7000 - FreshTomato Firmware 2023.5 K26ARM USB AIO-64K
Proxmox VE: (Topton X6C) Intel N100, 32GB RAM, 2x2TB SSD / NVMe
VM NAS: Xpenology SA6400 (TCRP: tinycore-redpill.v1.0.1.0.m-shell)
VM VPS: Debian-12.5.0-xfce , Kodi , Jellyfin
Wi-Fi: Ubiquiti U6-Lite
|
|
|
|
shibby |
Dodano 07-09-2014 20:50
|
SysOp
Posty: 17109
Dołączył: 15/01/2009 20:30
|
@Maniek91pl - zainstaluj paczke bash (jeżeli jeszcze nie masz), po czym przeedytuj plik /opt/etc/profile by wyglądał dokładnie tak:
Cytat #
# Bash initialization script
#
PS1="[\u@\h \W]$ "
PATH=/opt/sbin:/opt/bin:/sbin:/bin:/usr/sbin:/usr/bin
LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:/opt/lib:/opt/usr/lib
export TERMINFO=/opt/share/terminfo
export PS1 PATH LD_LIBRARY_PATH
po zapisaniu zmian przeloguj się do SSH. Ten trick po pierwsze naprawi ci ścieżki path, tak by ścieżli opt były pierwsze (tak więc przykładowo wget będzie brany z optware a nie z busyboxa) oraz "naprawi" tło i kursory w programie mc.
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+
VM Router: OpenWRT 22.03.4
VM NAS: Synology SA6400
VM VPS: Debian, WWW, Home Assistant
Switch: Netgear MS510TXPP
Switch: Ubiquiti USW-Flex-mini - szt. 2
Wi-Fi: Ubiquiti U6-Lite - szt. 2
|
|
|
|
Maniek91PL |
Dodano 07-09-2014 21:02
|
Maxi User
Posty: 731
Dołączył: 29/04/2013 21:44
|
działa
Dzięki Shibby
Asus RT-AC3200
Rocket M5
APC BACK-UPS RS 1200
Mini Itx ASUS Q87T+ i7-4770S
Alienware m15
Vu+ Solo2
|
|
|
|
shibby |
Dodano 07-09-2014 21:03
|
SysOp
Posty: 17109
Dołączył: 15/01/2009 20:30
|
Cytat Moje wyniki pomiaru bezpośrednio z routera są o 1/3 słabsze niż pomiar z kompa w LAN do tych samych serwerów. Może jest to spowodowane tym, że router ma 466 mhz?
Zgadza się. Python jest dość zasobożernym językiem programowania dla routerka. Jeżeli mamy szybkie łącze, które podczas normalnego użytkowania potrafi dość mocno obciążyć router to uruchomienie skrypty speedtest spowoduje jego jeszcze większe dociążenie, co w efekcie znacząco wpłynie na wydajność portu WAN i uzyskane wyniki. W moim przypadku wyniki były idealne, no ale router na którym dokonywałem pomiarów był też bardzo silny.
Uwaga na koniec: sprawdziłem skrypt na routerze pod Debianem7 (2x Xeon X5450 3,0GHz - 8 rdzeni, 16GB ram, 6x 146SAS w RAID10). Łącze podpięte pod router to światło z TP 200/200Mbps. Uzyskiwane wyniki oscylowały w granicach 180/110Mbps. Speedtest wykonany z poziomy przeglądarki podawał już wynik 200/200Mbps, tak więc widać, że skrypt nie radzi sobie z szybkimi łączami.
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+
VM Router: OpenWRT 22.03.4
VM NAS: Synology SA6400
VM VPS: Debian, WWW, Home Assistant
Switch: Netgear MS510TXPP
Switch: Ubiquiti USW-Flex-mini - szt. 2
Wi-Fi: Ubiquiti U6-Lite - szt. 2
|
|
|
|
chans |
Dodano 07-09-2014 21:22
|
User
Posty: 109
Dołączył: 13/08/2007 15:48
|
Shibby - dzięki za tutek, bardzo pomocny. Mam jedno pytanie odnośnie implementacji na "innych systemach" a dokładniej na openwrt. Dodałem paczki Cytat "opkg install python-curl python-crypto python-sqlite3 python-openssl python-imaging-library pyopenssl unzip unrar screen kilka jest dodatkowych do innych rzeczy.
Po odpaleniu skryptu pojawia się następujący komunikat:
Cytat
Retrieving speedtest.net configuration...
Traceback (most recent call last):
File "./speedtest_cli.py", line 692, in
main()
File "./speedtest_cli.py", line 686, in main
speedtest()
File "./speedtest_cli.py", line 509, in speedtest
config = getConfig()
File "./speedtest_cli.py", line 319, in getConfig
root = ET.fromstring(''.encode().join(configxml))
File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1300, in XML
parser = XMLParser(target=TreeBuilder())
File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1466, in __init__
"No module named expat; use SimpleXMLTreeBuilder instead"
ImportError: No module named expat; use SimpleXMLTreeBuilder instead
Co z tym zrobić? |
|
|
|
Maniek91PL |
Dodano 07-09-2014 21:30
|
Maxi User
Posty: 731
Dołączył: 29/04/2013 21:44
|
chans napisz raczej na forum eko Cezary to ogarnie
Asus RT-AC3200
Rocket M5
APC BACK-UPS RS 1200
Mini Itx ASUS Q87T+ i7-4770S
Alienware m15
Vu+ Solo2
|
|
|
|
shibby |
Dodano 07-09-2014 23:36
|
SysOp
Posty: 17109
Dołączył: 15/01/2009 20:30
|
poszujaj modułów python-expat, python-xml, python-simplexml
Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+
VM Router: OpenWRT 22.03.4
VM NAS: Synology SA6400
VM VPS: Debian, WWW, Home Assistant
Switch: Netgear MS510TXPP
Switch: Ubiquiti USW-Flex-mini - szt. 2
Wi-Fi: Ubiquiti U6-Lite - szt. 2
|
|
|