
God ettermiddag til alle Habra-brukere.
Jeg leser stadig artikler pÄ Habré om utviklingen av denne eller hin funksjonaliteten pÄ Malinka. Jeg bestemte meg for Ä dele arbeidet mitt her.
forhistorie
Jeg jobber for et selskap som tilbyr kabel-TV og internettilgangstjenester. Og som det skjer i slike selskaper, hÞrer jeg med jevne mellomrom klager pÄ at tariffplanen ikke samsvarer med det som stÄr i kontrakten. Enten klager brukeren over lav hastighet "via kabel", sÄ over hÞye ping fra visse tjenester, noen ganger over fullstendig fravÊr av Internett pÄ bestemte tider av dagen. Ofte ender slike klager i en samling av forespÞrsler, basert pÄ hvilken en av de ansatte gÄr "pÄ stedet" med en fungerende bÊrbar datamaskin, som alle mÄlinger blir tatt pÄ. Og ofte viser det seg at alt er bra med hastigheten. Og den lave hastigheten er faktisk pÄ en mobiltelefon, via wi-fi, pÄ balkongen. Vel, eller noe lignende.
Dessverre er det ikke mulig Ă„ gĂ„ til en abonnent, for eksempel klokken 21:37, nĂ„r han har lavest hastighet. De ansattes arbeidstid er tross alt begrenset. Ă
bytte ruteren har ingen effekt, fordi... FrekvensomrÄdet for wi-fi i vÄrt land er sÞrgelig rotete.
For ordens â den statlige leverandĂžren i Republikken Hviterussland slĂ„r pĂ„ wi-fi med makt pĂ„ alle enheter som er levert for bruk og kringkaster ByFly SSID fra hver enhet. Selv om abonnenten ikke har Internett-tjeneste, men kun en hjemmetelefon. Dette ble gjort for mersalg. Du kan kjĂžpe et kort fra denne operatĂžren i en kiosk, koble til et hvilket som helst punkt som heter ByFly og, ved Ă„ legge inn dataene fra kortet, motta Internett-tjenester. Gitt nesten 100 % dekning av byer og betydelig dekning av privat sektor og landlige omrĂ„der, er det ikke noe problem Ă„ finne et tilknytningspunkt.
Observasjoner av vÄre eksterne kommunikasjonskanaler viser at det er en gitt bÄndbreddereserve. Og abonnenter bruker ikke de tilgjengelige kanalene totalt, selv i rushtiden. Vi er veldig seriÞse med dette. Bruken av forskjellige tjenester og forskjellige hastighetsmÄlingsservere fÞrte til interessante resultater. Det viser seg at ikke alle tjenester er like nyttige... Spesielt pÄ kveldstid. Og du bÞr absolutt ikke stole pÄ dem. Mange operatÞrer av samme Ookla-nettverk har ikke brede kommunikasjonskanaler, eller jobber rygg mot rygg. Dette gjÞr at det pÄ kvelden ofte er nesten umulig Ä fÄ et Êrlig resultat. Ja, og motorveiene viser seg Ä vÊre syndige. For eksempel viser forsÞk pÄ Ä mÄle hastighet i Japan ekstremt katastrofale resultater...
PrimĂŠrbeslutning

Bildet er kun for illustrative formÄl.
To hastighetskontrollservere ble utplassert. Den fÞrste er , sekund - . Ytelsen til begge tjenestene ble sammenlignet. Tross alt bestemte vi oss for Ä stoppe pÄ Ookla fordi... opptil 90 % av abonnentene bruker denne tjenesten.
Deretter ble det skrevet instruksjoner for brukere og ansatte om hvordan man mÄler hastigheter i og utenfor nettverket. De. NÄr testen starter, mÄles hastigheten i nettverket som standard. Serveren er plassert i hovedenden vÄr, og Ookla-lÞsningen velger som standard serveren nÊrmest abonnenten. PÄ denne mÄten kontrollerer vi driften av vÄrt eget dataoverfÞringsnettverk.
For Ä mÄle hastighet i landet (vi har et eget nettverk for teleoperatÞrer, som forener alle operatÞrer og hoveddatasentre i landet), mÄ du velge en leverandÞr i landet og ta en ny mÄling. Vi har empirisk identifisert flere servere som gir mer eller mindre stabile resultater til enhver tid pÄ dagen og har listet dem opp som anbefalt i instruksjonene.
Vel, lignende handlinger for eksterne kommunikasjonskanaler. Vi fant store operatÞrer med store kanaler pÄ speedtest-servere og skrev dem i anbefalinger (beklager "Moskva - Rostelecom" og "Riga - Baltcom", men jeg vil anbefale disse nodene for Ä fÄ tilstrekkelige tall. Personlig mottok jeg opptil ~870 megabit fra disse serverne i rushtiden).
Hvorfor, spÞr du, slike vanskeligheter? Alt er veldig enkelt. Vi har fÄtt et ganske praktisk verktÞy som, i dyktige hender, lar oss finne ut om det er problemer i nettverkene vÄre, om det er problemer i det republikanske nettverket, eller om det er problemer med ryggraden. Hvis en person klager over lav nedlastingshastighet fra en tjeneste, kan vi mÄle hastigheten til abonnentens kanal og deretter sammenligne den med det han mottar fra tjenesten. Og det er rimelig Ä vise at vi Êrlig tildeler kanalen spesifisert i kontrakten. Vi kan ogsÄ forklare mulige Ärsaker til en slik forskjell i hastigheter.
SekundĂŠr lĂžsning
SpÞrsmÄlet om fartsfallet pÄ kveldstid/dag stÄr Äpent. Hvordan gjÞre det samme uten Ä vÊre hjemme hos abonnenten? Ta et billig enkeltkort med gigabit-nettverk og lag en sÄkalt probe av det. Enheten skal ta hastighetsmÄlinger langs kabelen ved et gitt tidsintervall. LÞsningen bÞr vÊre Äpen kildekode, sÄ upretensiÞs som mulig, med et praktisk adminpanel for visning av mÄleresultater. Enheten bÞr vÊre sÄ billig som mulig slik at den enkelt kan byttes ut og stÄ hos abonnenten i n dager uten frykt.
implementering

BananaPI (modell M1) ble lagt til grunn. Det er faktisk to grunner til dette valget.
- Gigabit port.
- Den ble bare liggende pÄ nattbordet.
Deretter ble det bestemt Ä bruke python-klienten for Speedtest by Ookla-tjenesten som en backend for mÄling av hastighet. bibliotek for Ä mÄle pinghastighet. Vel, og php for adminpanelet. For Ä lette oppfatningen brukte jeg .
PÄ grunn av det faktum at Raspberrys ressurser ikke er fleksible, ble kombinasjonen nginx+php-fpm+sqlite3 brukt. Jeg Þnsket Ä gi opp MySQL pÄ grunn av dens tyngde og redundans. Jeg forventer et spÞrsmÄl angÄende Iperf. Den mÄtte forlates pÄ grunn av umuligheten av Ä bruke den i andre retninger enn lokale.
Til Ä begynne med fulgte jeg veien til mange pÄ denne siden. Endret speedtest-cli-klienten. Men sÄ, etter Ä ha tenkt litt, forlot han denne ideen. Jeg skrev min egen arbeider som bruker egenskapene til den opprinnelige klienten.
For Ä analysere ping, skrev jeg ganske enkelt en egen behandler. Vi tar gjennomsnittsverdien fra mÄlingen. PingverktÞyet kan hÄndtere bÄde IP-adresse og domenenavn.
Jeg oppnÄdde ikke asynkront arbeid. Det er ikke spesielt nÞdvendig i dette tilfellet.
Administrasjonspanelet for Ă„ evaluere resultater viste seg Ă„ vĂŠre ganske minimalistisk.
Fig. Hovedadminvindu med testresultater
Fig. Testinnstillinger

Fig. Oppdater listen over Speedtest-servere
Det er alt. Ideen ble implementert pÄ mine knÊr, pÄ fritiden. FeltprÞver har ennÄ ikke begynt. Men vi planlegger Ä lansere prototyper i nÊr fremtid. Den kan brukes bÄde av tilbydere der og av klienter til leverandÞrer. Ingen plager deg med Ä ta mÄlinger hjemme hele dÞgnet. Det eneste du bÞr huske er at hvis du aktivt surfer pÄ Internett eller laster ned noe, vil mÄlingen vÊre lavere enn den virkelige. SÄ ideelt sett mÄ du la sonden vÊre pÄ nettverket som den eneste trafikkforbrukeren.
PS: vennligst ikke kritiser meg for kvaliteten pÄ koden. Jeg er selvlÊrt uten erfaring. Kildekode for . Kritikk er akseptert.
Kilde: www.habr.com
