Интернет жылдамдығын өлшеу аймағын әзірлеу

Интернет жылдамдығын өлшеу аймағын әзірлеу
Барлық Habra пайдаланушыларына қайырлы күн.

Мен үнемі Хабредегі Малинкадағы осы немесе басқа функционалдылықты дамыту туралы мақалаларды оқимын. Жұмысыммен осында бөлісуді жөн көрдім.

тарихын

Мен кабельдік телевидение және Интернетке қосылу қызметтерін ұсынатын компанияда жұмыс істеймін. Сондай-ақ, мұндай компанияларда болатындай, мен мерзімді түрде тарифтік жоспардың келісім-шартта көрсетілгенге сәйкес келмейтіні туралы шағымдарды естимін. Немесе пайдаланушы «кабель арқылы» төмен жылдамдыққа, содан кейін белгілі бір қызметтердің жоғары пингтеріне, кейде тәуліктің белгілі бір уақытында Интернеттің толық болмауына шағымданады. Көбінесе мұндай шағымдар сұраулар пулында аяқталады, соның негізінде қызметкерлердің бірі жұмыс істейтін ноутбукпен «сайтқа» барады, онда барлық өлшемдер алынады. Және, көбінесе, жылдамдықпен бәрі жақсы болып шығады. Ал төмен жылдамдық шын мәнінде ұялы телефонда, wi-fi арқылы, балконда. Жақсы, немесе ұқсас нәрсе.

Өкінішке орай, абонентке бару мүмкін емес, мысалы, 21:37-де, оның жылдамдығы ең төмен болған кезде. Өйткені, қызметкерлердің жұмыс уақыты шектеулі. Маршрутизаторды ауыстыру әсер етпейді, себебі... Біздің елде Wi-Fi жиілік диапазоны өте қиын.

Анықтама үшін — Беларусь Республикасындағы мемлекеттік провайдер пайдалануға берілген барлық құрылғыларда Wi-Fi-ды мәжбүрлеп қосады және ByFly SSID әр құрылғыдан таратады. Абонентте Интернет қызметі болмаса да, тек үй телефоны болса да. Бұл қосымша сату үшін жасалды. Сіз осы оператордан картаны дүңгіршектен сатып ала аласыз, ByFly деп аталатын кез келген нүктеге қосыла аласыз және картадағы деректерді енгізу арқылы Интернет қызметін ала аласыз. Қалаларды дерлік 100% қамтуды және жеке сектор мен ауылдық жерлерді айтарлықтай қамтуды ескере отырып, қосылу нүктесін табу қиын емес.

Біздің сыртқы байланыс арналарымызға жүргізілген бақылаулар өткізу қабілеттілігінің берілген қоры бар екенін көрсетеді. Ал жазылушылар қол жетімді арналарды, тіпті қарбалас уақытта да тұтынбайды. Біз бұл мәселеге өте байсалдымыз. Әртүрлі қызметтерді және әртүрлі жылдамдықты өлшеу серверлерін пайдалану қызықты нәтижелерге әкелді. Барлық қызмет бірдей пайдалы емес екен... Әсіресе кешкі уақытта. Және сіз оларға міндетті түрде сенбеуіңіз керек. Бір Ookla желісінің көптеген операторларында кең байланыс арналары жоқ немесе артқа қарай жұмыс істейді. Бұл кешке жиі шынайы нәтиже алу мүмкін емес дегенді білдіреді. Иә, және тас жолдар күнәға айналады. Мысалы, Жапониядағы жылдамдықты өлшеу әрекеттері өте апатты нәтижелер көрсетеді...

Бастапқы шешім

Интернет жылдамдығын өлшеу аймағын әзірлеу
Фотосурет тек көрнекі мақсаттарға арналған.

Жылдамдықты басқарудың екі сервері орналастырылды. Біріншісі LibreSpeed, екінші - OOKLA ұсынған Speedtest. Екі қызметтің де көрсеткіштері салыстырылды. Өйткені, біз Оклаға тоқтауды шештік, өйткені... абоненттердің 90% дейін бұл қызметті пайдаланады.

Әрі қарай, пайдаланушылар мен қызметкерлерге желі ішіндегі және сыртындағы жылдамдықтарды қалай өлшеуге болатыны туралы нұсқаулар жазылды. Анау. Сынақ басталған кезде әдепкі бойынша желідегі жылдамдық өлшенеді. Сервер біздің бас жағында орналасқан және Ookla шешімі әдепкі бойынша жазылушыға ең жақын серверді таңдайды. Осылайша біз өзіміздің деректерді тасымалдау желінің жұмысын тексереміз.

Ел ішіндегі жылдамдықты өлшеу үшін (бізде ел ішіндегі барлық операторлар мен негізгі деректер орталықтарын біріктіретін байланыс операторлары үшін жеке желі бар) ел ішінде провайдерді таңдап, екінші өлшеуді жүргізу керек. Біз тәуліктің кез келген уақытында азды-көпті тұрақты нәтиже беретін бірнеше серверлерді эмпирикалық түрде анықтадық және оларды нұсқауларда ұсынылғандай тізімдедік.

Сыртқы байланыс арналары үшін ұқсас әрекеттер. Біз speedtest серверлерінде үлкен арналары бар ірі операторларды тауып, оларды ұсыныстарға жаздық («Москва - Ростелеком» және «Рига - Балтком» кешіріңіз, бірақ мен бұл түйіндерді сәйкес сандарды алу үшін ұсынамын. Өз басым мен ~870 мегабитке дейін алдым. бұл серверлер ең жоғары сағаттарда).

Неліктен мұндай қиындықтарды сұрайсыз? Барлығы өте қарапайым. Біз қабілетті қолдарда біздің желілерде ақаулар бар-жоғын, республикалық желіде ақаулар бар-жоғын анықтауға мүмкіндік беретін өте ыңғайлы құрал алдық. Егер адам қандай да бір қызметтен жүктеп алу жылдамдығының төмендігіне шағымданса, біз абонент арнасының жылдамдығын өлшей аламыз, содан кейін оны қызметтен алатынымен салыстыра аламыз. Ал келісім-шартта көрсетілген арнаны адал бөліп жатқанымызды көрсету орынды. Жылдамдықтағы мұндай айырмашылықтың ықтимал себептерін де түсіндіре аламыз.

Екіншілік шешім

Кешке/күндізгі уақытта жылдамдықтың төмендеуі туралы мәселе ашық күйінде қалады. Абоненттің үйінде болмай-ақ дәл сол әрекетті қалай жасауға болады? Гигабиттік желісі бар арзан бір тақталы картаны алыңыз және одан зонд деп аталатын нәрсені жасаңыз. Құрылғы берілген уақыт аралығында кабель бойымен жылдамдықты өлшеуі керек. Шешім мүмкіндігінше қарапайым, өлшеу нәтижелерін көруге ыңғайлы басқару панелі бар ашық бастапқы код болуы керек. Құрылғы мүмкіндігінше арзан болуы керек, сондықтан оны оңай ауыстырып, абонентте n күн бойы қорықпай қалдыруға болады.

Реализация

Интернет жылдамдығын өлшеу аймағын әзірлеу

Негізі ретінде BananaPI (M1 үлгісі) алынды. Бұл таңдаудың екі себебі бар.

  1. Гигабит порты.
  2. Ол жай ғана тумбочкада жатты.

Әрі қарай, python клиентін пайдалану туралы шешім қабылданды speedtest-cli жылдамдықты өлшеуге арналған сервер ретінде Speedtest by Ookla қызметі үшін. кітапхана Питонпинг пинг жылдамдығын өлшеу үшін. Ал, әкімші панелі үшін PHP. Қабылдау жеңілдігі үшін мен қолдандым жүктеу.

Raspberry ресурстары икемді емес болғандықтан, nginx+php-fpm+sqlite3 комбинациясы қолданылды. Мен MySQL-ті оның ауырлығы мен артықтығына байланысты тастағым келді. Мен Iperf туралы сұрақ күтемін. Оны жергілікті бағытта емес басқа бағытта пайдалану мүмкін болмағандықтан, оны тастауға тура келді.

Бастапқыда мен бұл сайтта көптің жолын ұстандым. speedtest-cli клиенті өзгертілді. Бірақ біраз ойланып, ол бұл ойынан бас тартты. Мен бастапқы клиенттің мүмкіндіктерін пайдаланатын өз жұмысымды жаздым.

Пингтерді талдау үшін мен жай ғана жеке өңдеуші жаздым. Өлшемнен орташа мәнді аламыз. Пинг құралы IP мекенжайын да, домен атауын да өңдей алады.

Мен асинхронды жұмысқа қол жеткізе алмадым. Бұл жағдайда әсіресе қажет емес.

Нәтижелерді бағалауға арналған басқару тақтасы өте минималистік болып шықты.

Интернет жылдамдығын өлшеу аймағын әзірлеуСурет. Тестілеу нәтижелері бар негізгі әкімші терезесі

Интернет жылдамдығын өлшеу аймағын әзірлеуСурет. Сынақ параметрлері

Интернет жылдамдығын өлшеу аймағын әзірлеу
Сурет. Speedtest серверлерінің тізімін жаңартыңыз

Бар болғаны. Ойымды тізе бүгіп, бос уақытымда жүзеге асырдым. Далалық сынақтар әлі басталған жоқ. Бірақ біз жақын арада прототиптерді шығаруды жоспарлап отырмыз. Оны сол жердегі провайдерлер де, провайдерлердің клиенттері де пайдалана алады. Тәулік бойы үйде өлшем алу үшін сізді ешкім алаңдатпайды. Есте сақтау керек жалғыз нәрсе, егер сіз Интернетті белсенді түрде шарласаңыз немесе бірдеңе жүктеп алсаңыз, өлшем нақтыдан төмен болады. Сонымен, ең дұрысы, зондты желіде жалғыз трафик тұтынушысы ретінде қалдыру керек.

PS: кодтың сапасы үшін мені сынамаңыз. Тәжірибесіз өзімді өзім оқытамын. үшін бастапқы код GitHub. Сын қабылданады.

Ақпарат көзі: www.habr.com

пікір қалдыру