Rozvoj zóny na meranie rýchlosti internetu

Rozvoj zóny na meranie rýchlosti internetu
Dobré popoludnie všetkým používateľom Habra.

Na Habrém neustále čítam články o vývoji tej či onej funkcionality na Malinke. Rozhodol som sa tu podeliť o svoju prácu.

pravek

Pracujem pre spoločnosť, ktorá poskytuje služby káblovej televízie a prístupu na internet. A ako sa to v takýchto spoločnostiach stáva, pravidelne počúvam sťažnosti na nesúlad tarifného plánu s tým, čo je uvedené v zmluve. Buď sa používateľ sťažuje na nízku rýchlosť „cez kábel“, potom na vysoké pingy niektorých služieb, niekedy na úplnú absenciu internetu v určitých časoch dňa. Takéto sťažnosti často končia v hromade žiadostí, na základe ktorých jeden zo zamestnancov ide „na miesto“ s pracovným notebookom, na ktorom sa vykonávajú všetky merania. A často sa ukáže, že s rýchlosťou je všetko v poriadku. A nízka rýchlosť je vlastne na mobil, cez wi-fi, na balkóne. No, alebo niečo podobné.

Žiaľ, na abonenta sa nedá ísť napríklad o 21:37, kedy má najnižšie rýchlosti. Pracovný čas zamestnancov je predsa obmedzený. Výmena smerovača nemá žiadny účinok, pretože... Frekvenčný rozsah pre wi-fi je u nás žalostne neprehľadný.

Pre záznamu — štátny poskytovateľ v Bieloruskej republike násilne zapína wi-fi na všetkých zariadeniach poskytnutých na použitie a vysiela SSID ByFly z každého zariadenia. Aj keď účastník nemá internetovú službu, ale iba domáci telefón. Toto bolo urobené pre dodatočný predaj. Kartu od tohto operátora si môžete kúpiť v kiosku, pripojiť sa k ľubovoľnému bodu s názvom ByFly a zadaním údajov z karty získať internetové služby. Vzhľadom na takmer 100% pokrytie miest a výrazné pokrytie súkromného sektora a vidieckych oblastí nie je nájsť prípojný bod problém.

Pozorovania našich externých komunikačných kanálov ukazujú, že existuje určitá rezerva šírky pásma. A predplatitelia nespotrebúvajú dostupné kanály celkovo ani počas dopravnej špičky. Myslíme to veľmi vážne. Používanie rôznych služieb a rôznych serverov na meranie rýchlosti viedlo k zaujímavým výsledkom. Ukazuje sa, že nie všetky služby sú rovnako užitočné... Najmä vo večerných hodinách. A určite by ste im nemali veriť. Mnohí operátori tej istej siete Ookla nemajú široké komunikačné kanály alebo spolupracujú. To znamená, že večer je často takmer nemožné dosiahnuť poctivý výsledok. Áno, a diaľnice sa ukážu ako hriešne. Napríklad pokusy o meranie rýchlosti v Japonsku vykazujú mimoriadne katastrofálne výsledky...

Primárne rozhodnutie

Rozvoj zóny na meranie rýchlosti internetu
Fotografia je len ilustračná.

Boli nasadené dva servery na riadenie rýchlosti. Prvým je LibreSpeed, druhy - Speedtest od OOKLA. Porovnával sa výkon oboch služieb. Nakoniec sme sa rozhodli zastaviť v Ookle, pretože... túto službu využíva až 90 % predplatiteľov.

Ďalej boli napísané pokyny pre používateľov a zamestnancov, ako merať rýchlosti v sieti a mimo nej. Tie. Po spustení testu sa štandardne meria rýchlosť v rámci siete. Server sa nachádza na našej koncovej stanici a riešenie Ookla štandardne vyberá server, ktorý je najbližšie k predplatiteľovi. Týmto spôsobom kontrolujeme fungovanie vlastnej siete na prenos dát.

Na meranie rýchlosti v rámci krajiny (máme samostatnú sieť pre telekomunikačných operátorov, ktorá združuje všetkých operátorov a hlavné dátové centrá v rámci krajiny) si musíte vybrať poskytovateľa v rámci krajiny a vykonať druhé meranie. Empiricky sme identifikovali niekoľko serverov, ktoré poskytujú viac-menej stabilné výsledky kedykoľvek počas dňa, a uviedli sme ich podľa odporúčaní v pokynoch.

No, podobné akcie pre externé komunikačné kanály. Našli sme veľkých operátorov s veľkými kanálmi na serveroch speedtest a zapísali sme ich do odporúčaní (prepáčte „Moskva – Rostelecom“ a „Riga – Baltcom“, ale tieto uzly odporučím, aby som získal adekvátne čísla. Osobne som od nich dostal až ~870 megabitov tieto servery počas špičky).

Prečo, pýtate sa, také ťažkosti? Všetko je veľmi jednoduché. Dostali sme celkom pohodlný nástroj, ktorý nám v schopných rukách umožňuje určiť, či sú problémy v našich sieťach, či sú problémy v republikovej sieti alebo či sú problémy s chrbticou. Ak sa niekto sťažuje na nízku rýchlosť sťahovania z nejakej služby, môžeme zmerať rýchlosť kanála predplatiteľa a potom ju porovnať s tým, čo dostáva zo služby. A je rozumné ukázať, že čestne prideľujeme kanál uvedený v zmluve. Môžeme tiež vysvetliť možné dôvody takéhoto rozdielu v rýchlostiach.

Sekundárne riešenie

Otázka poklesu rýchlosti večer/počas dňa zostáva otvorená. Ako urobiť to isté bez toho, aby ste boli doma predplatiteľa? Vezmite lacnú jednodoskovú kartu s gigabitovou sieťou a urobte si z nej takzvanú sondu. Zariadenie musí vykonávať merania rýchlosti pozdĺž kábla v danom časovom intervale. Riešenie by malo byť open source, čo najmenej náročné, s pohodlným admin panelom na prezeranie výsledkov meraní. Zariadenie by malo byť čo najlacnejšie, aby sa dalo ľahko vymeniť a bez obáv ponechať u účastníka n dní.

Реализация

Rozvoj zóny na meranie rýchlosti internetu

BananaPI (model M1) bol vzatý ako základ. V skutočnosti existujú dva dôvody pre túto voľbu.

  1. Gigabitový port.
  2. Len tak ležalo na nočnom stolíku.

Ďalej bolo rozhodnuté použiť klienta python Nájdi job-cli pre službu Speedtest by Ookla ako backend na meranie rýchlosti. Knižnica Pythonping na meranie rýchlosti pingu. No a php pre admin panel. Pre ľahšie vnímanie som použil bootstrap.

Vzhľadom na to, že zdroje Raspberry nie sú flexibilné, bola použitá kombinácia nginx+php-fpm+sqlite3. Chcel som sa vzdať MySQL kvôli jeho náročnosti a redundancii. Očakávam otázku týkajúcu sa Iperfu. Musela byť opustená pre nemožnosť jej využitia v iných než miestnych smeroch.

Spočiatku som sledoval cestu mnohých na tejto stránke. Upravený klient speedtest-cli. Potom však po krátkom premýšľaní túto myšlienku opustil. Napísal som vlastného pracovníka, ktorý využíva možnosti pôvodného klienta.

Na analýzu pingov som jednoducho napísal samostatný handler. Z merania berieme priemernú hodnotu. Nástroj ping dokáže spracovať IP adresu aj názov domény.

Nedosiahol som asynchrónnu prácu. V tomto prípade to nie je zvlášť potrebné.

Admin panel na vyhodnocovanie výsledkov sa ukázal ako celkom minimalistický.

Rozvoj zóny na meranie rýchlosti internetuObr. Hlavné okno správcu s výsledkami testovania

Rozvoj zóny na meranie rýchlosti internetuObr. Testovacie nastavenia

Rozvoj zóny na meranie rýchlosti internetu
Obr. Aktualizujte zoznam serverov Speedtest

To je všetko. Nápad sa zrealizoval na kolene, vo voľnom čase. Skúšky v teréne sa ešte nezačali. Ale plánujeme spustiť prototypy v blízkej budúcnosti. Môžu ho využívať tak tamojší poskytovatelia, ako aj klienti poskytovateľov. Nikto vás neobťažuje vykonávať merania doma XNUMX hodín denne. Jediná vec, ktorú by ste si mali zapamätať, je, že ak aktívne surfujete na internete alebo si niečo sťahujete, potom bude meranie nižšie ako skutočné. Takže v ideálnom prípade musíte nechať sondu v sieti ako jediného spotrebiteľa prevádzky.

PS: prosím, nekritizujte ma za kvalitu kódu. Som samouk bez skúseností. Zdrojový kód pre GitHub. Kritika sa prijíma.

Zdroj: hab.com

Pridať komentár