Пропускане към основното съдържание

Измерване на скоростта на Интернет от команден ред


networking.pngЧесто се питаме защо, повлияни от рекламата и закупили скъп пакет, не постигаме скоростите на Интернет, рекламирани в брошурата.

Съществува прост вариант за измерване на скоростта чрез конзолни команди:
  1. speedtest-cli

За целта трябва първо да се убедим, че имаме инсталиран python:
[angie@angie-desktop ~]$ yum list installed |grep python
audit-libs-python.i686             2.3.7-5.el6           @base       
dbus-python.i686                   0.83.0-6.1.el6        @C6.0-base  
gnome-python2-gnome.i686           2.28.0-3.el6          @base/$releasever
libobasis5.0-python-script-provider.i586
                                  5.0.1.2-2             @/libobasis5.0-python-script-provider-5.0.1.2-2.i586
libproxy-python.i686               0.3.0-10.el6          @base       
libreport-python.i686              2.0.9-24.el6.centos   @base       
python.i686                        2.6.6-64.el6          @base       
python-deltarpm.i686               3.5-0.5.20090913git.el6  @base/$releasever
python-fpconst.noarch              0.7.3-6.1.el6         @base       
python-iniparse.noarch             0.3.1-2.1.el6         @C6.0-base  
python-libs.i686                   2.6.6-64.el6          @base       
python-nose.noarch                 0.10.4-3.1.el6        @base       
python-nss.i686                    0.16.0-1.el6          @base       
python-pycurl.i686                 7.19.0-8.el6          @C6.0-updates    
python-urlgrabber.noarch           3.9.1-9.el6           @C6.5-base  
rpm-python.i686                    4.8.0-47.el6          @base       

Ако не е инсталиран, трябва да го инсталираме с:
[angie@angie-desktop ~]# yum install python

След това сваляме от github speedtest-cli:
[angie@angie-desktop ~]$ wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest_cli.py
--2015-09-20 18:12:58--  https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest_cli.py
Resolving raw.githubusercontent.com... 185.31.17.133
Connecting to raw.githubusercontent.com|185.31.17.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 24314 (24K) [text/plain]
Saving to: "speedtest-cli"

100%[======================================>] 24,314   --.-K/s   in 0.002s  

2015-09-20 18:12:58 (14.8 MB/s) - "speedtest-cli" saved [24314/24314]

Трябва да променим правата върху файла, като разрешим изпълнението му:
[angie@angie-desktop ~]$ chmod +x speedtest-cli

След изпълнението на командата получаваме резултати, които често и за жалост се разминават с очакванията:
[angie@angie-desktop ~]$ ./speedtest-cli
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Vivacom (95.xx.xx.xx)...
Selecting best server based on latency...
Hosted by escom (Haskovo) [56.04 km]: 44.604 ms
Testing download speed........................................
Download: 25.30 Mbit/s
Testing upload speed..................................................
Upload: 13.21 Mbit/s

Ако искаме да видим резултатите в битове, трябва да добавим опцията (ключа) --bytes към командата:
[angie@angie-desktop ~]$ ./speedtest-cli --bytes
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Vivacom (95.xx.xx.xx)...
Selecting best server based on latency...
Hosted by EVO Ltd (Veliko Tarnovo) [72.34 km]: 43.248 ms
Testing download speed........................................
Download: 3.75 Mbyte/s
Testing upload speed..................................................
Upload: 2.13 Mbyte/s

Ако желаем да споделим със speedtest.net резултатите от „изследването“, трябва да добавим опцията --share:
[angie@angie-desktop ~]$ ./speedtest-cli --share
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Vivacom (95.xx.xx.xx)...
Selecting best server based on latency...
Hosted by EVO Ltd (Veliko Tarnovo) [72.34 km]: 31.815 ms
Testing download speed........................................
Download: 29.84 Mbit/s
Testing upload speed..................................................
Upload: 12.57 Mbit/s
Share results: https://www.speedtest.net/result/4679385439.png

Резултатите, заедно с малко статистика, могат да се видят на следното изображение:
https://www.speedtest.net/result/4679385439.png

Разбира се, можем да включим в командата последователно и двете по-горе посочени опции.
Можем да видим тестовите сървъри с опцията --list:
[root@angie-desktop html]# /home/angie/speedtest-cli --list |grep Bulgaria
1963) Internet Group Ltd (Stara Zagora, Bulgaria) [0.67 km]
1447) Compas Karadjov and ko (Dimitrovgrad, Bulgaria) [42.70 km]
3176) escom (Haskovo, Bulgaria) [56.04 km]
2321) ComNet Bulgaria (Sliven, Bulgaria) [63.11 km]
6363) EVO Ltd (Veliko Tarnovo, Bulgaria) [72.34 km]
3423) Telenor (Plovdiv, Bulgaria) [79.82 km]
2312) ComNet Bulgaria (Pazardjik, Bulgaria) [110.66 km]
5388) TheZone Ltd. (Svishtov, Bulgaria) [134.41 km]
4301) DigiCom.BG (Burgas, Bulgaria) [149.86 km]
2294) ComNet Bulgaria (Burgas, Bulgaria) [149.86 km]
1135) SKAT TV (Burgas, Bulgaria) [149.86 km]
4741) ETA BG (Cherven Bryag, Bulgaria) [158.25 km]
4274) University of Ruse (Ruse, Bulgaria) [159.77 km]
4763) Delta LTD (Ruse, Bulgaria) [159.77 km]
6653) Kiten Net (Kiten, Bulgaria) [177.41 km]
2214) MaxTelecom LTD (Sofia, Bulgaria) [188.16 km]
1864) Mobiltel (Sofia, Bulgaria) [188.16 km]
2320) ComNet Bulgaria (Sofia, Bulgaria) [188.16 km]
1885) BLIZOO (Sofia, Bulgaria) [188.16 km]
1917) VIVACOM (Sofia, Bulgaria) [188.16 km]
2127) UltraNET Ltd (Blagoevgrad, Bulgaria) [214.35 km]
5002) Pernik Lan (Pernik, Bulgaria) [214.60 km]
4676) Net-Surf.net Ltd. (Montana, Bulgaria) [224.55 km]
4560) Vida optics TVV Ltd (Vidin, Bulgaria) [283.37 km]

Следващият пример ни дава резултатите към конкретно избран сървър, като са избегнати текстовите съобщения:
[root@angie-desktop html]# /home/angie/speedtest-cli --server 6363 --simple
Ping: 54.965 ms
Download: 30.28 Mbit/s
Upload: 16.59 Mbit/s

Gonzalo Cao Cabeza de Vaca е модифицирал скрипта, като той вече би трябвало да събира данните и да ги визуализира графично. Лично на нас не ни се отдаде да повторим експеримента.

2. wput/wget

Можем да направим теста за скоростта на качване, като използваме командата wput за да качим голям файл на ftp сървър. За съжаление във версията ѝ 0.6.1 има грешка, която не позволява качването на файлове над определен размер. Със сигурност не работи с размери на файла 9.2 GB, затова използвахме по-малък - „само“ 1.5 GB:
[angie@angie-desktop proftpd]$ wput -V
wput version: 0.6.1
[angie@angie-desktop proftpd]$ wput -v bigfile.avi ftp://angie:password@myhomeftpserver.org
--19:29:44-- `bigfile.avi'
   => ftp://angie:xxxxx@xx.xx.xx.xx:21/bigfile.avi
Connecting to xx.xx.xx.xx:21... connected!
Logging in as angie ... Logged in!
==> TYPE I ... done.
==> SIZE bigfile.avi ... failed.
==> PASV ... done.
==> STOR bigfile.avi ... done.
Length: 1,535,068,160
99% [=======================================================================================>] 1,534,754,816     4.61M/s ETA    00s
19:34:50 (bigfile.avi) - ` 4.79M/s' [1535068160]

FINISHED --19:34:50--
Transfered 1,535,068,160 bytes in 1 file at  4.79M/s

Скоростта на сваляне ще измерим с командата wget, като използваме качения преди малко файл:
[angie@angie-desktop proftpd]$ wget -V
GNU Wget 1.12 built on linux-gnu.
[angie@angie-desktop proftpd]$  wget -O /dev/null ftp://angie:password@myhomeftpserver.org/bigfile.avi
--2015-10-03 19:50:03--  ftp://angie:*password*@myhomeftpserver.org/bigfile.avi
          => "/dev/null"
Resolving myhomeftpserver.org... xx.xx.xx.xx
Connecting to myhomeftpserver.org|xx.xx.xx.xx|:21... connected.
Logging in as angie ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD not needed.
==> SIZE bigfile.avi ... 1535068160
==> PASV ... done.    ==> RETR bigfile.avi ... done.
Length: 1535068160 (1.4G) (unauthoritative)

100%[========================================================================================>] 1,535,068,160 4.38M/s   in 5m 41s  

2015-10-03 19:55:45 (4.30 MB/s) - "/dev/null" saved [1535068160]

В случая използваме /dev/null като дестинация, тъй като сваления файл реално не ни трябва и по този начин си спестяваме триенето му.
Резултатите при тестовете с wput/wget са повлияни (вероятно) и от това, че използваната техника е на домашно ниво, докато при тестовете със speedtest-cli е използван професионален сървър.

Източници:


Коментари

Популярни публикации от този блог

Проектиране на кемпер с VehiPlan

Оливер Колонж (Oliver Collonge) написва през 2011 г. втора версия на безплатната програма за дизайн на кемпери VehiPlan . Според автора тя е писана и трябва да работи под Windows 2000/Vista. Пробите показват, че работи нормално и под Windows 7 и 10. След като свалите архива (zip) можете да го разархивирате в C:\Windows\Program Files (x86)\. Програмата е с френски интерфейс и затова са необходими още няколко файла - vb6fr.dll , comdlg32.ocx & mscomctl.ocx . Тези файлове се поставят в C:\Windows\SysWOW64\. Comdlg.ocx се поставя в C:\Windows\System32\. След това е необходимо да се стартира Command Prompt (cmd - като администратор) и да се изпълни командата: regsvr32 %systemroot%\system32\comdlg32.ocx Ако възникне някакъв проблем, по-нова версия на файла може да се свали от тук . След това трябва да направим препратка към C:\Program Files (x86)\VehiPlan-2-0-0\VehiPlan.exe за по-удобно стартиране, която да поставим на работния плот или друго подходящо място. В архивния файл на програмат

Диаграма на Гант с електронна таблица

Диаграмата на Гант се състои от ленти, ориентирани успоредно на времевата ос. Всяка лента представлява отделна задача в проекта (вид работа), краищата ѝ — началния и крайния момент на изпълнението  ѝ, а дължината ѝ - продължителността на задачата. Тези диаграми могат да се използват и за други, не точно производствени, цели - например да покажат заетостта на учебна зала. Когато представянето на данните е регулярна задача може да се използва специализиран софтуер като GanttProject, но за инцидентна визуализация можем да се справим с „подръчни средства“. Сега ще покажем как с електронна таблица (LibreOffice Calc) ще визуализираме времето, за което няколко служители са работили във фирмата: Изходните данни са в няколко колони: Продължителността на трудовия стаж в дни определяме с формулата D2=C2-B2, като я копираме за всеки последващ ред. На 6-и ред съответно с функцията MIN и MAX определяме минимална и максимална дата в таблицата, а на 7-и ред - записваме начална (1.1.1989) и

MD5 и SHA-1 хеш алгоритми

MD5 (от „message-digest“) криптографският алгоритъм е създаден през 1991 г. от проф. Роналд Райвест и за първи път е публикуван през април 1992 г. Целта му е да замени компрометирания MD4 алгоритъм, който не е достатъчно сигурен. В последствие се оказва, че и MD5 не отговаря на съвременните изисквания за сигурност и може да бъде разбит. MD5 е построен върху конструкцията на Merkle–Damgård и генерира шестнайстично число със фиксиран размер от 32 символа (128 бита) за входящо съобщение с произволна дължина. Идеята е да се създаде уникален идентификатор за съобщението, който да гарантира неговата истинност. Например: MD5("The quick brown fox jumps over the lazy dog") = 9e107d9d372bb6826bd81d3542a419d6 Дори малка промяна, напр. добавя не точка в края на входящото съобщение би трябвало да генерира нов уникален идентификатор: MD5("The quick brown fox jumps over the lazy dog . ") = e4d909c290d0fb1ca068ffaddf22cbd0 Дължината на вход