Zhvillimi i një zone për matjen e shpejtësisë së internetit

Zhvillimi i një zone për matjen e shpejtësisë së internetit
Mirëdita për të gjithë përdoruesit e Habra.

Kam lexuar vazhdimisht artikuj në Habré për zhvillimin e këtij apo atij funksionaliteti në Malinka. Vendosa të ndaj punën time këtu.

parahistorinë

Unë punoj për një kompani që ofron shërbime televizive kabllore dhe akses në internet. Dhe, siç ndodh në kompani të tilla, në mënyrë periodike dëgjoj ankesa për mospërputhje të planit tarifor me atë që thuhet në kontratë. Ose përdoruesi ankohet për shpejtësi të ulët "nëpërmjet kabllos", pastaj për ping të lartë të shërbimeve të caktuara, ndonjëherë për mungesë të plotë të internetit në periudha të caktuara të ditës. Shpesh, ankesa të tilla përfundojnë në një grup kërkesash, në bazë të të cilave njëri nga punonjësit shkon “në vend” me një laptop pune, mbi të cilin bëhen të gjitha matjet. Dhe, shpesh, rezulton se gjithçka është në rregull me shpejtësinë. Dhe shpejtësia e ulët është në fakt në një telefon celular, nëpërmjet wi-fi, në ballkon. Epo, ose diçka e ngjashme.

Fatkeqësisht, nuk është e mundur të shkosh te një abonent, për shembull, në orën 21:37, kur ai ka shpejtësinë më të ulët. Në fund të fundit, orët e punës së punonjësve janë të kufizuara. Zëvendësimi i ruterit nuk ka efekt, sepse... Gama e frekuencave për wi-fi në vendin tonë është mjerisht e rrëmujshme.

Për referencë — ofruesi shtetëror në Republikën e Bjellorusisë aktivizon me forcë wi-fi në të gjitha pajisjet e parashikuara për përdorim dhe transmeton ByFly SSID nga çdo pajisje. Edhe nëse pajtimtari nuk ka shërbim interneti, por vetëm një telefon shtëpie. Kjo është bërë për shitje shtesë. Ju mund të blini një kartë nga ky operator në një kioskë, të lidheni me çdo pikë të quajtur ByFly dhe, duke futur të dhënat nga karta, të merrni shërbime interneti. Duke pasur parasysh mbulimin pothuajse 100% të qyteteve dhe mbulimin e konsiderueshëm të sektorit privat dhe zonave rurale, gjetja e një pike lidhjeje nuk është problem.

Vëzhgimet e kanaleve tona të jashtme të komunikimit tregojnë se ekziston një rezervë e caktuar e gjerësisë së brezit. Dhe abonentët nuk i konsumojnë gjithsej kanalet e disponueshme, edhe gjatë orarit të pikut. Ne jemi shumë seriozë për këtë. Përdorimi i shërbimeve të ndryshme dhe serverëve të ndryshëm të matjes së shpejtësisë çuan në rezultate interesante. Rezulton se jo të gjitha shërbimet janë njësoj të dobishme... Sidomos në mbrëmje. Dhe nuk duhet t'u besoni atyre patjetër. Shumë operatorë të të njëjtit rrjet Ookla nuk kanë kanale të gjera komunikimi, ose punojnë krah për krah. Kjo do të thotë që në mbrëmje shpesh është pothuajse e pamundur të arrish një rezultat të ndershëm. Po, dhe autostradat rezultojnë të jenë mëkatare. Për shembull, përpjekjet për të matur shpejtësinë në Japoni tregojnë rezultate jashtëzakonisht katastrofike...

Vendimi parësor

Zhvillimi i një zone për matjen e shpejtësisë së internetit
Fotoja është vetëm për qëllime ilustruese.

U vendosën dy serverë të kontrollit të shpejtësisë. E para është LibreSpeed, i dyti - Speedtest nga OOKLA. Performanca e të dy shërbimeve u krahasua. Në fund të fundit, vendosëm të ndalonim në Ookla sepse... deri në 90% e abonentëve e përdorin këtë shërbim.

Më pas, u shkruan udhëzime për përdoruesit dhe punonjësit se si të matin shpejtësinë brenda dhe jashtë rrjetit. Ato. Kur fillon testimi, matet si parazgjedhje shpejtësia brenda rrjetit. Serveri ndodhet në krye dhe zgjidhja Ookla si parazgjedhje zgjedh serverin më të afërt me pajtimtarin. Në këtë mënyrë ne kontrollojmë funksionimin e rrjetit tonë të transmetimit të të dhënave.

Për të matur shpejtësinë brenda vendit (ne kemi një rrjet të veçantë për operatorët e telekomit, i cili bashkon të gjithë operatorët dhe qendrat kryesore të të dhënave brenda vendit), duhet të zgjidhni një ofrues brenda vendit dhe të bëni një matje të dytë. Ne kemi identifikuar në mënyrë empirike disa serverë që japin rezultate pak a shumë të qëndrueshme në çdo kohë të ditës dhe i kemi renditur siç rekomandohen në udhëzime.

Epo, veprime të ngjashme për kanalet e jashtme të komunikimit. Ne gjetëm operatorë të mëdhenj me kanale të mëdha në serverët e shpejtësisë dhe i shkruam në rekomandime (më falni "Moskva - Rostelecom" dhe "Riga - Baltcom", por unë do t'i rekomandoj këto nyje për të marrë numra adekuat. Personalisht, kam marrë deri në ~870 megabit nga këta serverë gjatë orëve të pikut).

Pse, ju pyesni, vështirësi të tilla? Gjithçka është shumë e thjeshtë. Kemi marrë një mjet mjaft të përshtatshëm që, në duar të afta, na lejon të përcaktojmë nëse ka probleme në rrjetet tona, nëse ka probleme në rrjetin republikan ose nëse ka probleme me shtyllën kurrizore. Nëse një person ankohet për shpejtësi të ulët shkarkimi nga ndonjë shërbim, ne mund të masim shpejtësinë e kanalit të pajtimtarit dhe më pas ta krahasojmë atë me atë që ai merr nga shërbimi. Dhe është e arsyeshme të tregojmë se ne e ndajmë me ndershmëri kanalin e specifikuar në kontratë. Ne gjithashtu mund të shpjegojmë arsyet e mundshme për një ndryshim të tillë në shpejtësi.

Zgjidhje dytësore

Çështja e rënies së shpejtësisë në mbrëmje/ditë mbetet e hapur. Si të bëni të njëjtën gjë pa qenë në shtëpinë e pajtimtarit? Merrni një kartë të lirë me një bord me një rrjet gigabit dhe bëni një të ashtuquajtur sondë prej saj. Pajisja duhet të marrë matje të shpejtësisë përgjatë kabllit në një interval kohor të caktuar. Zgjidhja duhet të jetë me burim të hapur, sa më modeste të jetë e mundur, me një panel të përshtatshëm administratori për shikimin e rezultateve të matjes. Pajisja duhet të jetë sa më e lirë që të mund të zëvendësohet lehtësisht dhe të lihet me pajtimtarin për n ditë pa frikë.

Zbatimi

Zhvillimi i një zone për matjen e shpejtësisë së internetit

BananaPI (modeli M1) u mor si bazë. Në fakt ka dy arsye për këtë zgjedhje.

  1. Porta Gigabit.
  2. Ajo ishte vetëm e shtrirë në komodinë.

Më pas, u vendos të përdorej klienti python Speedtest-cli për shërbimin Speedtest nga Ookla si një mbështetje për matjen e shpejtësisë. librari Pythonping për të matur shpejtësinë e ping. Epo, dhe php për panelin e administratorit. Për lehtësinë e perceptimit kam përdorur bootstrap.

Për shkak të faktit se burimet e Raspberry nuk janë fleksibël, është përdorur kombinimi nginx+php-fpm+sqlite3. Doja të hiqja dorë nga MySQL për shkak të rëndimit dhe tepricës së tij. Unë parashikoj një pyetje në lidhje me Iperf. Është dashur të braktiset për shkak të pamundësisë së përdorimit në drejtime të tjera nga ato lokale.

Fillimisht ndoqa rrugën e shumë njerëzve në këtë faqe. Ndryshuar klientin speedtest-cli. Por më pas, pasi u mendua pak, ai e braktisi këtë ide. Unë shkrova punëtorin tim që përdor aftësitë e klientit origjinal.

Për të analizuar ping, thjesht shkrova një mbajtës të veçantë. Ne marrim vlerën mesatare nga matja. Mjeti ping mund të trajtojë adresën IP dhe emrin e domenit.

Nuk arrita punë asinkrone. Nuk është veçanërisht e nevojshme në këtë rast.

Paneli i administratorit për vlerësimin e rezultateve doli të ishte mjaft minimalist.

Zhvillimi i një zone për matjen e shpejtësisë së internetitFig. Dritarja kryesore e administratorit me rezultatet e testimit

Zhvillimi i një zone për matjen e shpejtësisë së internetitFig. Cilësimet e testimit

Zhvillimi i një zone për matjen e shpejtësisë së internetit
Fig. Përditësoni listën e serverëve Speedtest

Kjo eshte e gjitha. Ideja u zbatua në gjunjë, në kohën time të lirë. Testet në terren nuk kanë filluar ende. Por ne planifikojmë të lançojmë prototipe në të ardhmen e afërt. Mund të përdoret si nga ofruesit atje ashtu edhe nga klientët e ofruesve. Askush nuk ju shqetëson të bëni matje në shtëpi gjatë gjithë kohës. E vetmja gjë që duhet të mbani mend është se nëse shfletoni në mënyrë aktive në internet ose shkarkoni diçka, atëherë matja do të jetë më e ulët se ajo reale. Pra, në mënyrë ideale, ju duhet ta lini sondën në rrjet si konsumatori i vetëm i trafikut.

PS: ju lutem mos më kritikoni për cilësinë e kodit. Jam autodidakt pa eksperience. Kodi burimor për GitHub. Kritika pranohet.

Burimi: www.habr.com

Shto një koment