Izrada zone za mjerenje brzine interneta

Izrada zone za mjerenje brzine interneta
Dobar dan svim korisnicima Habre.

Stalno čitam članke na Habréu o razvoju ove ili one funkcionalnosti na Malinki. Odlučio sam ovdje podijeliti svoj rad.

prapovijest

Radim za tvrtku koja pruža usluge kabelske televizije i pristupa internetu. I, kao što se događa u takvim tvrtkama, povremeno čujem pritužbe o nedosljednosti tarifnog plana s onim što je navedeno u ugovoru. Ili se korisnik žali na malu brzinu "putem kabela", zatim na visoke pingove određenih servisa, ponekad na potpunu odsutnost interneta u određeno doba dana. Često takve reklamacije završe u skupu zahtjeva, na temelju kojih netko od zaposlenika odlazi “na teren” s radnim prijenosnim računalom na kojemu se vrše sva mjerenja. I često se ispostavi da je s brzinom sve u redu. A mala brzina je zapravo na mobitelu, preko wi-fija, na balkonu. Pa, ili nešto slično.

Nažalost, nije moguće otići do pretplatnika, primjerice, u 21:37, kada ima najmanje brzine. Uostalom, radno vrijeme zaposlenika je ograničeno. Zamjena rutera nema efekta, jer... Frekvencijski raspon za wi-fi kod nas je jadno pretrpan.

Za rekord — državni davatelj u Republici Bjelorusiji prisilno uključuje wi-fi na svim uređajima danim na korištenje i emitira ByFly SSID sa svakog uređaja. Čak i ako pretplatnik nema internetsku uslugu, već samo kućni telefon. To je učinjeno radi dodatne prodaje. Karticu ovog operatera možete kupiti na kiosku, spojiti se na bilo koju točku pod nazivom ByFly i unosom podataka s kartice dobiti internetske usluge. S obzirom na gotovo 100% pokrivenost gradova i značajnu pokrivenost privatnog sektora i ruralnih područja, pronalaženje priključne točke nije problem.

Promatranja naših vanjskih komunikacijskih kanala pokazuju da postoji određena rezerva propusnosti. A pretplatnici ne konzumiraju ukupno dostupne kanale, čak ni tijekom špice. Vrlo smo ozbiljni po tom pitanju. Korištenje različitih servisa i različitih poslužitelja za mjerenje brzine dovelo je do zanimljivih rezultata. Ispostavilo se da nisu sve usluge jednako korisne... Pogotovo navečer. I definitivno im ne biste trebali vjerovati. Mnogi operateri iste mreže Ookla nemaju široke komunikacijske kanale ili rade jedan uz drugog. To znači da je navečer često gotovo nemoguće dobiti pošten rezultat. Da, i autoceste su se pokazale grešnima. Primjerice, pokušaji mjerenja brzine u Japanu pokazuju krajnje katastrofalne rezultate...

Primarna odluka

Izrada zone za mjerenje brzine interneta
Fotografija je samo ilustrativna.

Postavljena su dva poslužitelja za kontrolu brzine. Prvi je LibreSpeed, drugi - Speedtest tvrtke OOKLA. Uspoređena je izvedba obje usluge. Ipak smo odlučili stati u Ookli jer... do 90% pretplatnika koristi ovu uslugu.

Zatim su napisane upute za korisnike i zaposlenike kako mjeriti brzine unutar i izvan mreže. Oni. Kada test započne, standardno se mjeri brzina unutar mreže. Poslužitelj se nalazi na našem glavnom mjestu, a Ookla rješenje prema zadanim postavkama odabire poslužitelj koji je najbliži pretplatniku. Na taj način provjeravamo rad vlastite mreže za prijenos podataka.

Za mjerenje brzine unutar zemlje (imamo zasebnu mrežu za telekom operatere, koja objedinjuje sve operatere i glavne podatkovne centre unutar zemlje), trebate odabrati pružatelja usluga unutar zemlje i izvršiti drugo mjerenje. Empirijski smo identificirali nekoliko poslužitelja koji daju više ili manje stabilne rezultate u bilo koje doba dana te smo ih naveli prema preporuci u uputama.

Pa, slične akcije za vanjske komunikacijske kanale. Pronašli smo velike operatere s velikim kanalima na serverima za testiranje brzine i napisali ih u preporukama (oprostite “Moskva - Rostelecom” i “Riga - Baltcom”, ali preporučit ću ove čvorove da dobijem odgovarajuće brojeve. Osobno sam primio do ~870 megabita od ovi poslužitelji tijekom vršnih sati).

Zašto, pitate se, takve poteškoće? Sve je vrlo jednostavno. Dobili smo prilično zgodan alat koji nam u sposobnim rukama omogućuje da utvrdimo ima li problema u našim mrežama, ima li problema u republičkoj mreži ili ima problema s okosnicom. Ako se osoba požali na nisku brzinu preuzimanja s nekog servisa, možemo izmjeriti brzinu kanala pretplatnika i zatim je usporediti s onim što dobiva od servisa. I razumno je pokazati da pošteno dodjeljujemo kanal naveden u ugovoru. Također možemo objasniti moguće razloge tolike razlike u brzinama.

Sekundarno rješenje

Pitanje pada brzine navečer/danju ostaje otvoreno. Kako učiniti istu stvar, a da niste kod pretplatnikove kuće? Uzmite jeftinu single-board karticu s gigabitnom mrežom i napravite od nje tzv.sondu. Uređaj mora mjeriti brzinu duž kabela u zadanom vremenskom intervalu. Rješenje bi trebalo biti otvorenog koda, što nepretencioznije, s zgodnim admin panelom za pregled rezultata mjerenja. Uređaj treba biti što jeftiniji kako bi se mogao lako zamijeniti i bez straha ostaviti kod pretplatnika n dana.

Provedba

Izrada zone za mjerenje brzine interneta

BananaPI (model M1) uzet je kao osnova. Dva su zapravo razloga za ovaj izbor.

  1. Gigabitni priključak.
  2. Samo je ležalo na noćnom ormariću.

Zatim je odlučeno koristiti python klijent speedtest-cli za servis Speedtest by Ookla kao backend za mjerenje brzine. knjižnica Pythonping za mjerenje brzine pinga. Pa, i php za admin panel. Radi lakše percepcije koristio sam bootstrap.

Zbog činjenice da Raspberry resursi nisu fleksibilni, korištena je kombinacija nginx+php-fpm+sqlite3. Htio sam odustati od MySQL-a zbog njegove težine i suvišnosti. Očekujem pitanje u vezi Iperfa. Morao se napustiti zbog nemogućnosti korištenja u drugim smjerovima osim lokalnih.

U početku sam slijedio put mnogih na ovoj stranici. Izmijenjen je speedtest-cli klijent. Ali onda je, nakon malo razmišljanja, odustao od te ideje. Napisao sam vlastiti worker koji koristi mogućnosti izvornog klijenta.

Za analizu pingova jednostavno sam napisao poseban rukovatelj. Uzimamo prosječnu vrijednost iz mjerenja. Alat za ping može rukovati i IP adresom i nazivom domene.

Nisam postigao asinkroni rad. U ovom slučaju to nije osobito potrebno.

Administratorska ploča za ocjenjivanje rezultata pokazala se prilično minimalističkom.

Izrada zone za mjerenje brzine internetaSlika. Glavni administratorski prozor s rezultatima testiranja

Izrada zone za mjerenje brzine internetaSlika. Testne postavke

Izrada zone za mjerenje brzine interneta
Slika. Ažurirajte popis Speedtest poslužitelja

To je sve. Ideja je provedena na koljenima, u moje slobodno vrijeme. Terenska ispitivanja još nisu počela. Ali planiramo lansirati prototipove u bliskoj budućnosti. Mogu ga koristiti i tamošnji pružatelji i klijenti pružatelja usluga. Nitko vam ne smeta da radite mjerenja kod kuće XNUMX sata dnevno. Jedina stvar koju trebate zapamtiti je da ako aktivno surfate internetom ili preuzimate nešto, tada će mjerenje biti niže od stvarnog. Dakle, u idealnom slučaju, trebate ostaviti sondu na mreži kao jedinog potrošača prometa.

PS: nemojte me kritizirati zbog kvalitete koda. Samouk sam bez iskustva. Izvorni kod za GitHub. Kritika se prihvaća.

Izvor: www.habr.com

Dodajte komentar