Vývoj zóny pro měření rychlosti internetu

Vývoj zóny pro měření rychlosti internetu
Dobré odpoledne všem uživatelům Habra.

Neustále čtu články na Habrém o vývoji té či oné funkcionality na Malince. Rozhodl jsem se zde podělit o svou práci.

pravěk

Pracuji pro společnost, která poskytuje služby kabelové televize a připojení k internetu. A jak už to v takových společnostech bývá, pravidelně slyším stížnosti na nesoulad tarifního plánu s tím, co je uvedeno ve smlouvě. Buď si uživatel stěžuje na nízkou rychlost „přes kabel“, pak na vysoké pingy některých služeb, někdy na úplnou absenci internetu v určitou denní dobu. Často takové stížnosti končí ve skupině žádostí, na základě kterých se jeden ze zaměstnanců dostaví „na místo“ s pracovním notebookem, na kterém se provádějí všechna měření. A často se ukáže, že s rychlostí je vše v pořádku. A ta nízká rychlost je vlastně na mobil, přes wi-fi, na balkoně. No, nebo něco podobného.

Bohužel nelze jet na abonenta např. ve 21:37, kdy má nejnižší rychlosti. Pracovní doba zaměstnanců je totiž omezená. Výměna routeru nemá žádný efekt, protože... Frekvenční rozsah pro wi-fi je u nás žalostně nepřehledný.

Pro záznamu — státní poskytovatel v Běloruské republice násilně zapíná wi-fi na všech zařízeních poskytnutých k použití a vysílá ByFly SSID z každého zařízení. I když účastník nemá internetovou službu, ale pouze domácí telefon. To bylo provedeno pro doplňkový prodej. Kartu u tohoto operátora si můžete zakoupit v kiosku, připojit se k libovolnému bodu s názvem ByFly a zadáním údajů z karty získat internetové služby. Vzhledem k téměř 100% pokrytí měst a značnému pokrytí soukromého sektoru a venkova není nalezení přípojného bodu problém.

Pozorování našich externích komunikačních kanálů ukazuje, že existuje určitá rezerva šířky pásma. A předplatitelé nespotřebovávají dostupné kanály celkem ani během dopravní špičky. Myslíme to velmi vážně. Použití různých služeb a různých serverů pro měření rychlosti vedlo k zajímavým výsledkům. Ukazuje se, že ne všechny služby jsou stejně užitečné... Zejména po večerech. A rozhodně byste jim neměli věřit. Mnoho operátorů stejné sítě Ookla nemá široké komunikační kanály nebo spolupracují. To znamená, že večer je často téměř nemožné dosáhnout poctivého výsledku. Ano, a dálnice se ukazují jako hříšné. Například pokusy o měření rychlosti v Japonsku vykazují extrémně katastrofální výsledky...

Primární rozhodnutí

Vývoj zóny pro měření rychlosti internetu
Foto je ilustrativní

Byly nasazeny dva servery pro řízení rychlosti. První je LibreSpeed, druhý - Speedtest od OOKLA. Byl porovnán výkon obou služeb. Nakonec jsme se rozhodli zastavit v Ookle, protože... tuto službu využívá až 90 % předplatitelů.

Dále byly napsány pokyny pro uživatele a zaměstnance, jak měřit rychlost uvnitř i vně sítě. Tito. Po spuštění testu se standardně měří rychlost v rámci sítě. Server je umístěn na naší koncové stanici a řešení Ookla ve výchozím nastavení vybere server nejblíže předplatiteli. Tímto způsobem kontrolujeme provoz vlastní sítě pro přenos dat.

Pro měření rychlosti v rámci země (máme samostatnou síť pro telekomunikační operátory, která sdružuje všechny operátory a hlavní datová centra v rámci země), je potřeba vybrat poskytovatele v rámci země a provést druhé měření. Empiricky jsme identifikovali několik serverů, které poskytují více či méně stabilní výsledky v kteroukoli denní dobu, a uvedli jsme je podle doporučení v pokynech.

No, podobné akce pro externí komunikační kanály. Našli jsme velké operátory s velkými kanály na serverech speedtest a napsali je do doporučení (omlouvám se „Moskva – Rostelecom“ a „Riga – Baltcom“, ale pro získání adekvátních čísel doporučím tyto uzly. Osobně jsem od nich obdržel až ~870 megabitů tyto servery ve špičce).

Proč, ptáte se, takové potíže? Vše je velmi jednoduché. Dostali jsme celkem pohodlný nástroj, který nám ve schopných rukou umožňuje určit, zda jsou problémy v našich sítích, zda jsou problémy v síti republikové nebo zda jsou problémy s páteří. Pokud si někdo stěžuje na nízkou rychlost stahování z nějaké služby, můžeme změřit rychlost kanálu předplatitele a poté ji porovnat s tím, co dostává ze služby. A je rozumné ukázat, že poctivě přidělujeme kanál uvedený ve smlouvě. Můžeme také vysvětlit možné důvody takového rozdílu rychlostí.

Sekundární řešení

Otázka poklesu rychlosti večer/přes den zůstává otevřená. Jak udělat totéž, aniž byste byli doma předplatitele? Vezměte levnou jednodeskovou kartu s gigabitovou sítí a udělejte z ní tzv. sondu. Zařízení musí provádět měření rychlosti podél kabelu v daném časovém intervalu. Řešení by mělo být open source, pokud možno nenáročné, s pohodlným admin panelem pro prohlížení výsledků měření. Zařízení by mělo být co nejlevnější, aby bylo možné jej snadno vyměnit a bez obav ponechat u účastníka n dní.

uskutečnění

Vývoj zóny pro měření rychlosti internetu

BananaPI (model M1) byl vzat jako základ. Důvody pro tuto volbu jsou ve skutečnosti dva.

  1. Gigabitový port.
  2. Jen se to válelo na nočním stolku.

Dále bylo rozhodnuto použít klienta python speedtest-cli pro službu Speedtest by Ookla jako backend pro měření rychlosti. Knihovna Pythonping pro měření rychlosti pingu. No a php pro admin panel. Pro usnadnění vnímání jsem použil bootstrap.

Vzhledem k tomu, že zdroje Raspberry nejsou flexibilní, byla použita kombinace nginx+php-fpm+sqlite3. Chtěl jsem se vzdát MySQL kvůli jeho náročnosti a redundanci. Očekávám otázku ohledně Iperfu. Musela být opuštěna z důvodu nemožnosti použití v jiných než místních směrech.

Zpočátku jsem sledoval cestu mnoha na tomto webu. Upraven klient speedtest-cli. Ale poté, co trochu přemýšlel, tuto myšlenku opustil. Napsal jsem svůj vlastní pracovník, který využívá možnosti původního klienta.

Pro analýzu pingů jsem jednoduše napsal samostatný handler. Vezmeme průměrnou hodnotu z měření. Nástroj ping zvládne IP adresu i název domény.

Nedosáhl jsem asynchronní práce. V tomto případě to není zvlášť potřeba.

Admin panel pro vyhodnocování výsledků se ukázal jako vcelku minimalistický.

Vývoj zóny pro měření rychlosti internetuObr. Hlavní okno správce s výsledky testování

Vývoj zóny pro měření rychlosti internetuObr. Testovací nastavení

Vývoj zóny pro měření rychlosti internetu
Obr. Aktualizujte seznam serverů Speedtest

To je vše. Nápad byl realizován na koleně, ve volném čase. Terénní testy ještě nezačaly. V blízké budoucnosti ale plánujeme spuštění prototypů. Mohou jej využívat jak tamní poskytovatelé, tak i klienti poskytovatelů. Nikdo vás neobtěžuje měřit doma nepřetržitě. Jediné, co byste si měli zapamatovat, je, že pokud aktivně surfujete na internetu nebo si něco stahujete, pak bude měření nižší než skutečné. V ideálním případě tedy musíte nechat sondu v síti jako jediného spotřebitele provozu.

PS: prosím, nekritizujte mě za kvalitu kódu. Jsem samouk bez zkušeností. Zdrojový kód pro GitHub. Kritika je přijímána.

Zdroj: www.habr.com

Přidat komentář