| Speedtest.net na routerze | 
| shibby | Dodano 06-09-2014 14:03 | 
|  
 SysOp
 
  
 
 Posty: 17165
 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/binwget --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.pyRetrieving 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 Skynet338) 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=338Retrieving 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!
 
 Router: Unifi Cloud Gateway FiberSwitch: Unifi USW-Lite-16-PoE
 Switch: Unifi USW-Flex-Mini - szt. 2
 Wi-Fi: Unifi U6-Lite - szt. 2
 Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 4x 2TB SSD
 VM #1: Synology SA6400
 VM #2: Debian, WWW
 VM #3:  Home Assistant OS
 | 
|  | 
 
 | 
|  | 
| 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: 743
 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: 743
 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: 17165
 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... 
 Router: Unifi Cloud Gateway FiberSwitch: Unifi USW-Lite-16-PoE
 Switch: Unifi USW-Flex-Mini - szt. 2
 Wi-Fi: Unifi U6-Lite - szt. 2
 Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 4x 2TB SSD
 VM #1: Synology SA6400
 VM #2: Debian, WWW
 VM #3:  Home Assistant OS
 | 
|  | 
 
 | 
|  | 
| Maniek91PL | Dodano 07-09-2014 10:28 | 
|  
 Maxi User
 
  
 
 Posty: 743
 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: 361
 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 2024.3 K26ARM USB AIO-64KWi-Fi: Ubiquiti U6-Lite
 | 
|  | 
 
 | 
|  | 
| hermes-80 | Dodano 07-09-2014 11:52 | 
|  
 VIP
 
  
 
 Posty: 3682
 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: 361
 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 2024.3 K26ARM USB AIO-64KWi-Fi: Ubiquiti U6-Lite
 | 
|  | 
 
 | 
|  | 
| shibby | Dodano 07-09-2014 20:50 | 
|  
 SysOp
 
  
 
 Posty: 17165
 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.
 
 Router: Unifi Cloud Gateway FiberSwitch: Unifi USW-Lite-16-PoE
 Switch: Unifi USW-Flex-Mini - szt. 2
 Wi-Fi: Unifi U6-Lite - szt. 2
 Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 4x 2TB SSD
 VM #1: Synology SA6400
 VM #2: Debian, WWW
 VM #3:  Home Assistant OS
 | 
|  | 
 
 | 
|  | 
| Maniek91PL | Dodano 07-09-2014 21:02 | 
|  
 Maxi User
 
  
 
 Posty: 743
 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: 17165
 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.
 
 Router: Unifi Cloud Gateway FiberSwitch: Unifi USW-Lite-16-PoE
 Switch: Unifi USW-Flex-Mini - szt. 2
 Wi-Fi: Unifi U6-Lite - szt. 2
 Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 4x 2TB SSD
 VM #1: Synology SA6400
 VM #2: Debian, WWW
 VM #3:  Home Assistant OS
 | 
|  | 
 
 | 
|  | 
| chans | Dodano 07-09-2014 21:22 | 
|  
 User
 
  
 
 Posty: 111
 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 kilka jest dodatkowych do innych rzeczy.Cytat "opkg install python-curl python-crypto python-sqlite3 python-openssl python-imaging-library pyopenssl unzip unrar screenPo 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: 743
 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: 17165
 Dołączył: 15/01/2009 20:30
 
 
 | poszujaj modułów python-expat, python-xml, python-simplexml 
 Router: Unifi Cloud Gateway FiberSwitch: Unifi USW-Lite-16-PoE
 Switch: Unifi USW-Flex-Mini - szt. 2
 Wi-Fi: Unifi U6-Lite - szt. 2
 Proxmox VE: i5-13400T, 64GB RAM, 2x 512GB NVMe, 4x 2TB SSD
 VM #1: Synology SA6400
 VM #2: Debian, WWW
 VM #3:  Home Assistant OS
 | 
|  | 
 
 |