Razvoj cone za merjenje internetne hitrosti

Razvoj cone za merjenje internetne hitrosti
Dober dan vsem uporabnikom Habre.

Na Habréju nenehno berem članke o razvoju te ali one funkcionalnosti na Malinki. Odločil sem se, da svoje delo delim tukaj.

prazgodovina

Delam v podjetju, ki ponuja storitve kabelske televizije in dostopa do interneta. In kot se dogaja v takih podjetjih, občasno slišim pritožbe glede neskladnosti tarifnega načrta s tistim, kar je navedeno v pogodbi. Bodisi se uporabnik pritožuje nad nizko hitrostjo "preko kabla", nato nad visokimi pingi določenih storitev, včasih nad popolno odsotnostjo interneta ob določenih urah dneva. Pogosto se takšne reklamacije končajo v skupini prošenj, na podlagi katerih gre eden od zaposlenih »na teren« z delujočim prenosnim računalnikom, na katerem se opravijo vse meritve. In pogosto se izkaže, da je s hitrostjo vse v redu. In nizka hitrost je dejansko na mobilnem telefonu, preko wi-fija, na balkonu. No ali kaj podobnega.

Na žalost ni mogoče iti k naročniku na primer ob 21:37, ko ima najnižje hitrosti. Navsezadnje je delovni čas zaposlenih omejen. Zamenjava routerja nima učinka, ker... Frekvenčno območje za wi-fi je pri nas hudo natrpano.

Za zapisnik — državni ponudnik v Republiki Belorusiji prisilno vklopi wi-fi na vseh napravah, ki so dane v uporabo, in iz vsake naprave oddaja SSID ByFly. Tudi če naročnik nima internetne storitve, ampak samo domači telefon. To je bilo storjeno za dodatno prodajo. Kartico tega operaterja lahko kupite v kiosku, se povežete s katero koli točko z imenom ByFly in z vnosom podatkov s kartice prejmete internetne storitve. Glede na skoraj 100-odstotno pokritost mest in precejšnjo pokritost zasebnega sektorja ter podeželja iskanje priključne točke ni problem.

Opazovanja naših zunanjih komunikacijskih kanalov kažejo, da obstaja določena rezerva pasovne širine. In naročniki ne porabijo vseh razpoložljivih kanalov v celoti, tudi v času prometne konice. Glede tega smo zelo resni. Uporaba različnih storitev in različnih strežnikov za merjenje hitrosti je privedla do zanimivih rezultatov. Izkazalo se je, da niso vse storitve enako uporabne ... Še posebej zvečer. In zagotovo jim ne bi smeli zaupati. Mnogi operaterji istega omrežja Ookla nimajo širokih komunikacijskih kanalov ali pa delujejo vzajemno. To pomeni, da je zvečer pogosto skoraj nemogoče dobiti pošten rezultat. Da, in avtoceste se izkažejo za grešne. Na primer, poskusi merjenja hitrosti na Japonskem kažejo izjemno katastrofalne rezultate ...

Primarna odločitev

Razvoj cone za merjenje internetne hitrosti
Fotografija je zgolj ilustrativna.

Nameščena sta bila dva strežnika za nadzor hitrosti. Prvi je LibreSpeed, drugič - Speedtest podjetja OOKLA. Primerjali smo delovanje obeh storitev. Konec koncev smo se odločili, da se ustavimo pri Ookli, ker... do 90% naročnikov uporablja to storitev.

V nadaljevanju so bila napisana navodila za uporabnike in zaposlene, kako meriti hitrosti znotraj in izven omrežja. Tisti. Ko se preizkus začne, se privzeto meri hitrost znotraj omrežja. Strežnik se nahaja na naši glavni enoti, rešitev Ookla pa privzeto izbere strežnik, ki je najbližji naročniku. Na ta način preverimo delovanje lastnega omrežja za prenos podatkov.

Za merjenje hitrosti znotraj države (imamo ločeno omrežje za telekomunikacijske operaterje, ki združuje vse operaterje in glavne podatkovne centre znotraj države) morate izbrati ponudnika znotraj države in opraviti drugo meritev. Empirično smo identificirali več strežnikov, ki dajejo bolj ali manj stabilne rezultate ob kateri koli uri dneva in jih navedli kot priporočeno v navodilih.

No, podobna dejanja za zunanje komunikacijske kanale. Na strežnikih za preizkušanje hitrosti smo našli velike operaterje z velikimi kanali in jih zapisali v priporočila (oprostite »Moskva - Rostelecom« in »Riga - Baltcom«, vendar bom priporočil ta vozlišča, da dobim ustrezne številke. Osebno sem prejel do ~870 megabitov od ti strežniki v času konic).

Zakaj, se sprašujete, takšne težave? Vse je zelo preprosto. Dobili smo dokaj priročno orodje, ki nam v spretnih rokah omogoča ugotavljanje, ali so težave v naših omrežjih, ali so težave v republiškem omrežju, ali so težave s hrbtenico. Če se oseba pritožuje nad nizko hitrostjo prenosa iz neke storitve, lahko izmerimo hitrost naročnikovega kanala in jo nato primerjamo s tem, kar prejme od storitve. In razumno je dokazati, da pošteno dodeljujemo kanal, naveden v pogodbi. Pojasnimo lahko tudi možne vzroke za takšno razliko v hitrostih.

Sekundarna rešitev

Odprto ostaja vprašanje padca hitrosti zvečer/podnevi. Kako narediti isto stvar, ne da bi bili pri naročniku doma? Vzemi poceni enoplatno kartico z gigabitnim omrežjem in naredi iz nje tako imenovano sondo. Naprava mora meriti hitrost vzdolž kabla v določenem časovnem intervalu. Rešitev naj bo odprtokodna, čim bolj nezahtevna, s priročno skrbniško ploščo za pregled rezultatov meritev. Naprava naj bo čim cenejša, da jo lahko enostavno zamenjamo in brez strahu pustimo pri naročniku n dni.

Реализация

Razvoj cone za merjenje internetne hitrosti

Za osnovo je bil vzet BananaPI (model M1). Razloga za to izbiro sta pravzaprav dva.

  1. Gigabitna vrata.
  2. Samo ležal je na nočni omarici.

Nato smo se odločili za uporabo odjemalca python speedtest-cli za storitev Speedtest by Ookla kot zaledje za merjenje hitrosti. knjižnica Pythonping za merjenje hitrosti pinga. No, in php za skrbniško ploščo. Za lažje dojemanje sem uporabil škorenj.

Ker Raspberryjevi viri niso prilagodljivi, je bila uporabljena kombinacija nginx+php-fpm+sqlite3. Želel sem opustiti MySQL zaradi njegove teže in odvečnosti. Predvidevam vprašanje glede Iperfa. Zaradi nezmožnosti uporabe v smereh, ki niso lokalne, so ga morali opustiti.

Sprva sem sledil poti mnogih na tej strani. Spremenjen odjemalec speedtest-cli. Potem pa je po kratkem premisleku to idejo opustil. Napisal sem svojega delavca, ki uporablja zmožnosti prvotnega odjemalca.

Za analizo pingov sem preprosto napisal ločen upravljalnik. Iz meritve vzamemo povprečno vrednost. Orodje ping lahko obravnava tako naslov IP kot ime domene.

Nisem dosegel asinhronega dela. V tem primeru to ni posebej potrebno.

Administratorska plošča za ocenjevanje rezultatov se je izkazala za precej minimalistično.

Razvoj cone za merjenje internetne hitrostiSl. Glavno skrbniško okno z rezultati testiranja

Razvoj cone za merjenje internetne hitrostiSl. Testne nastavitve

Razvoj cone za merjenje internetne hitrosti
Sl. Posodobite seznam strežnikov Speedtest

To je vse. Ideja je bila uresničena na kolenih, v prostem času. Testi na terenu se še niso začeli. Toda v bližnji prihodnosti načrtujemo lansiranje prototipov. Uporabljajo ga lahko tako tamkajšnji ponudniki kot naročniki ponudnikov. Nihče vas ne moti, da meritve opravljate doma XNUMX ur na dan. Edina stvar, ki si jo morate zapomniti je, da če aktivno brskate po internetu ali nekaj prenašate, bo meritev nižja od dejanske. V idealnem primeru morate sondo pustiti v omrežju kot edino porabnico prometa.

PS: Prosim, ne kritizirajte me zaradi kakovosti kode. Sem samouk brez izkušenj. Izvorna koda za GitHub. Kritika je sprejeta.

Vir: www.habr.com

Dodaj komentar