Ինտերնետի արագության չափման գոտու մշակում

Ինտերնետի արագության չափման գոտու մշակում
Բարի երեկո Habra-ի բոլոր օգտատերերին:

Ես անընդհատ հոդվածներ եմ կարդում Habré-ում Malinka-ում այս կամ այն ​​ֆունկցիոնալության զարգացման մասին: Ես որոշեցի կիսվել իմ աշխատանքով այստեղ:

նախապատմությանը

Ես աշխատում եմ մի ընկերությունում, որը տրամադրում է կաբելային հեռուստատեսություն և ինտերնետ հասանելիության ծառայություններ: Եվ, ինչպես լինում է նման ընկերություններում, ես պարբերաբար դժգոհություններ եմ լսում սակագնային պլանի անհամապատասխանության մասին պայմանագրում նշվածին։ Կամ օգտատերը դժգոհում է ցածր արագությունից «մալուխի միջոցով», հետո որոշակի ծառայությունների բարձր պինգից, երբեմն՝ օրվա որոշակի ժամերին ինտերնետի իսպառ բացակայությունից։ Հաճախ նման բողոքներն ավարտվում են խնդրանքների մի շարքում, որոնց հիման վրա աշխատողներից մեկը «տեղում» է գնում աշխատող նոութբուքով, որի վրա կատարվում են բոլոր չափումները։ Եվ, հաճախ, պարզվում է, որ արագության հետ ամեն ինչ կարգին է։ Իսկ ցածր արագությունը իրականում բջջային հեռախոսի վրա է, wi-fi-ի միջոցով, պատշգամբում։ Դե, կամ նման մի բան:

Ցավոք, հնարավոր չէ բաժանորդի մոտ գնալ, օրինակ, ժամը 21:37-ին, երբ նա ունի ամենացածր արագությունները։ Ի վերջո, աշխատակիցների աշխատանքային ժամերը սահմանափակ են։ Երթուղիչի փոխարինումը ոչ մի ազդեցություն չունի, քանի որ... Մեր երկրում Wi-Fi-ի հաճախականությունների տիրույթը ողբալիորեն խառնաշփոթ է:

For the record — Բելառուսի Հանրապետության պետական ​​մատակարարը հարկադրաբար միացնում է wi-fi-ը օգտագործման համար նախատեսված բոլոր սարքերում և հեռարձակում է ByFly SSID-ը յուրաքանչյուր սարքից: Նույնիսկ եթե բաժանորդը չունի ինտերնետ ծառայություն, այլ միայն տան հեռախոս: Սա արվել է լրացուցիչ վաճառքի համար: Այս օպերատորից կարող եք քարտ գնել կրպակից, միանալ ByFly անունով ցանկացած կետին և քարտից տվյալները մուտքագրելով ստանալ ինտերնետ ծառայություններ։ Հաշվի առնելով քաղաքների գրեթե 100% ծածկույթը և մասնավոր հատվածի և գյուղական շրջանների զգալի ծածկույթը, կապի կետ գտնելը խնդիր չէ:

Մեր արտաքին կապի ուղիների դիտարկումները ցույց են տալիս, որ առկա է թողունակության տվյալ պահուստ: Իսկ բաժանորդներն ընդհանրապես չեն սպառում առկա ալիքները նույնիսկ պիկ ժամին։ Մենք այս հարցում շատ լուրջ ենք վերաբերվում։ Տարբեր ծառայությունների և արագության չափման տարբեր սերվերների օգտագործումը հանգեցրեց հետաքրքիր արդյունքների։ Պարզվում է՝ ոչ բոլոր ծառայություններն են հավասարապես օգտակար... Հատկապես երեկոյան ժամերին։ Եվ դուք անպայման չպետք է վստահեք նրանց: Նույն Ookla ցանցի շատ օպերատորներ չունեն լայն կապի ուղիներ կամ աշխատում են իրար հետ: Սա նշանակում է, որ երեկոյան հաճախ գրեթե անհնար է ազնիվ արդյունք ստանալ։ Այո, և մայրուղիները մեղավոր են: Օրինակ՝ արագությունը չափելու փորձերը Ճապոնիայում ցույց են տալիս ծայրահեղ աղետալի արդյունքներ...

Առաջնային որոշում

Ինտերնետի արագության չափման գոտու մշակում
Լուսանկարը միայն նկարչական նպատակներով է։

Գործարկվել են արագության վերահսկման երկու սերվեր: Առաջինն է LibreSpeed, երկրորդ - Speedtest OOKLA-ից. Համեմատվել է երկու ծառայությունների կատարողականը: Ի վերջո, մենք որոշեցինք կանգ առնել Ookla-ում, քանի որ... Բաժանորդների մինչև 90%-ն օգտվում է այս ծառայությունից:

Այնուհետև հրահանգներ են գրվել օգտատերերի և աշխատակիցների համար, թե ինչպես չափել արագությունը ցանցի ներսում և դրսում: Նրանք. Երբ թեստը սկսվում է, լռելյայնորեն չափվում է ցանցի ներսում արագությունը: Սերվերը գտնվում է մեր գլխամասում, և Ookla լուծումը լռելյայն ընտրում է բաժանորդին ամենամոտ սերվերը: Այս կերպ մենք ստուգում ենք տվյալների փոխանցման սեփական ցանցի աշխատանքը։

Երկրի ներսում արագությունը չափելու համար (մենք ունենք առանձին ցանց հեռահաղորդակցության օպերատորների համար, որը միավորում է երկրի բոլոր օպերատորներին և հիմնական տվյալների կենտրոնները), դուք պետք է ընտրեք մատակարար երկրի ներսում և կատարեք երկրորդ չափումը: Մենք էմպիրիկորեն նույնականացրել ենք մի քանի սերվերներ, որոնք քիչ թե շատ կայուն արդյունքներ են տալիս օրվա ցանկացած պահի և ցուցակագրել ենք դրանք, ինչպես առաջարկվում է հրահանգներում:

Դե, նման գործողություններ արտաքին կապի ուղիների համար։ Մենք գտել ենք մեծ օպերատորներ՝ մեծ ալիքներով speedtest սերվերների վրա և գրել դրանք առաջարկություններում (ներողություն «Moskva - Rostelecom» և «Riga - Baltcom», բայց ես խորհուրդ կտամ այս հանգույցներին համապատասխան թվեր ստանալու համար: Անձամբ ես ստացել եմ մինչև ~870 մեգաբիթ: այս սերվերները պիկ ժամերին):

Ինչո՞ւ, կհարցնեք, նման դժվարություններ: Ամեն ինչ շատ պարզ է. Մենք ստացել ենք բավականին հարմար գործիք, որն ընդունակ ձեռքերում թույլ է տալիս որոշել՝ մեր ցանցերում խնդիրներ կան, հանրապետական ​​ցանցում, թե՞ ողնաշարի հետ կապված խնդիրներ կան։ Եթե ​​մարդը դժգոհում է ինչ-որ ծառայությունից ներբեռնման ցածր արագությունից, մենք կարող ենք չափել բաժանորդի ալիքի արագությունը և այն համեմատել այն ծառայության հետ, ինչ նա ստանում է ծառայությունից։ Եվ խելամիտ է ցույց տալ, որ մենք ազնվորեն հատկացնում ենք պայմանագրում նշված կապուղին։ Կարող ենք բացատրել նաև արագությունների նման տարբերության հնարավոր պատճառները։

Երկրորդական լուծում

Երեկոյան/ցերեկը արագության անկման հարցը մնում է բաց։ Ինչպե՞ս անել նույն բանը առանց բաժանորդի տանը գտնվելու: Վերցրեք գիգաբիթ ցանցով էժանագին մեկ տախտակ քարտ և դրանից այսպես կոչված զոնդ պատրաստեք։ Սարքը պետք է կատարի արագության չափումներ մալուխի երկայնքով որոշակի ժամանակային ընդմիջումով: Լուծումը պետք է լինի բաց կոդով, հնարավորինս ոչ հավակնոտ, չափումների արդյունքները դիտելու հարմար ադմինիստրատորի վահանակով: Սարքը պետք է լինի հնարավորինս էժան, որպեսզի այն հեշտությամբ փոխարինվի և առանց վախի n օր թողնել բաժանորդի մոտ։

Իրականացման

Ինտերնետի արագության չափման գոտու մշակում

Որպես հիմք ընդունվել է BananaPI (մոդել M1): Այս ընտրության համար իրականում երկու պատճառ կա.

  1. Գիգաբիթ նավահանգիստ.
  2. Այն պարզապես պառկած էր գիշերանոցում։

Այնուհետև որոշվեց օգտագործել python հաճախորդը Արագ որոնում Speedtest-ի կողմից Ookla ծառայության համար՝ որպես արագության չափման հետին պլան: Գրադարան Pythonping ping արագությունը չափելու համար. Դե, և php ադմինիստրատորի վահանակի համար: Ընկալման հեշտության համար ես օգտագործեցի bootstrap.

Հաշվի առնելով այն հանգամանքը, որ Raspberry-ի ռեսուրսները ճկուն չեն, օգտագործվել է nginx+php-fpm+sqlite3 համակցությունը։ Ես ուզում էի հրաժարվել MySQL-ից՝ դրա ծանրության և ավելորդության պատճառով: Ես ակնկալում եմ հարց Iperf-ի վերաբերյալ: Այն պետք է լքվեր տեղական ուղղություններից այլ ուղղություններով օգտագործելու անհնարինության պատճառով։

Սկզբում ես հետևեցի այս կայքում շատերի ճանապարհին: Փոփոխվել է speedtest-cli հաճախորդը: Բայց հետո, մի փոքր մտածելուց հետո, նա հրաժարվեց այս մտքից։ Ես գրել եմ իմ սեփական աշխատողը, որն օգտագործում է սկզբնական հաճախորդի հնարավորությունները:

Պինգերը վերլուծելու համար ես ուղղակի գրեցի առանձին կարգավորիչ: Չափումից վերցնում ենք միջին արժեքը։ Պինգ գործիքը կարող է կարգավորել ինչպես IP հասցեն, այնպես էլ տիրույթի անունը:

Ես չեմ հասել ասինխրոն աշխատանքի. Այս դեպքում դա առանձնապես անհրաժեշտ չէ։

Արդյունքների գնահատման ադմինիստրատորի վահանակը բավականին մինիմալիստական ​​էր:

Ինտերնետի արագության չափման գոտու մշակումՆկար. Հիմնական ադմինիստրատորի պատուհանը թեստավորման արդյունքներով

Ինտերնետի արագության չափման գոտու մշակումՆկար. Փորձարկման կարգավորումներ

Ինտերնետի արագության չափման գոտու մշակում
Նկար. Թարմացրեք Speedtest սերվերների ցանկը

Այսքանը: Գաղափարն իրականացվել է ծնկներիս վրա, ազատ ժամանակ։ Դաշտային փորձարկումները դեռ չեն սկսվել։ Բայց մենք նախատեսում ենք մոտ ապագայում գործարկել նախատիպերը։ Այն կարող է օգտագործվել ինչպես այնտեղ գտնվող մատակարարների, այնպես էլ պրովայդերների հաճախորդների կողմից: Ոչ ոք ձեզ չի խանգարում տանը չափումներ անել շուրջօրյա։ Միակ բանը, որ դուք պետք է հիշեք, այն է, որ եթե դուք ակտիվորեն շրջում եք ինտերնետում կամ ինչ-որ բան ներբեռնում, ապա չափումը կլինի իրականից ցածր: Այսպիսով, իդեալական տարբերակում, դուք պետք է թողնեք զոնդը ցանցում որպես երթևեկության միակ սպառող:

Հ.Գ. խնդրում եմ ինձ մի քննադատեք կոդի որակի համար։ Ինքնուսուցան եմ՝ առանց փորձի։ Աղբյուրի կոդը համար GitHub. Քննադատությունն ընդունված է։

Source: www.habr.com

Добавить комментарий