OpenVPN-ի թրաֆիկի հաշվիչներն ընդդեմ սկավառակի I/O-ի՝ երեք տարբեր թվեր
Ինտերֆեյսի բայթերը, գործընթացի սիմվոլների հաշվիչները և սկավառակի գրառումները տարբեր աշխատանք են չափում։ Համեմատեք դրանք նախքան թունելի ծավալով սկավառակներ պլանավորելը։
Անցկացրեք մեծ ֆայլ թունելով, և ինտերֆեյսի հաշվիչը կբարձրանա ֆայլի չափով։ Այդ թվի մեջ ոչինչ չի նշանակում, որ նույն ծավալը հասել է սկավառակի։ Այս քննարկումներում համեմատվում են երեք տարբեր չափումներ, և դրանք պատասխանում են երեք տարբեր հարցերի՝ որքան թրաֆիկ հատեց ցանցային շերտը, քանի բայթ գործընթացը կարդաց և գրեց համակարգային կանչերով, և որքան աշխատանք հասավ պահոցի շերտին։
Առաջինը երրորդի հետ համեմատելը սովորական սխալ է, և այն ստեղծում է կամ ուրվական սկավառակի խնդիր, կամ հզորության պլան, որը անտեսում է իրականում տեղի ունեցող գրառումները։ Երեքը բաժանելի են, և յուրաքանչյուրն ունի ճիշտ կիրառություն։
Երեք թվեր, որոնք շփոթում են
Ինտերֆեյսի հաշվիչները նկարագրում են ցանցային շերտում մշակվող թրաֆիկը։ Դրանք ճիշտ թիվն են թողունակության, թունելի չափի և տարանցումը գնահատող վճարային մոդելների համար։
Գործընթացի սիմվոլների հաշվիչները նկարագրում են ցանկացած նկարագրիչի վրա ընթերցման և գրառման կանչերով տեղափոխված բայթերը, ներառյալ խողովակները, տերմինալները և սիմվոլային սարքերը։ Դրանք ճիշտ թիվն են այն հարցի համար, թե որքան զբաղված է գործընթացը համակարգային կանչի սահմանին, և դրանք պահոցի հաշիվ չեն։
Պահոցի հաշվիչները նկարագրում են բայթերը, որոնք միջուկը փորձել է տեղափոխել բլոկային սարք կամ դրանից։ Դրանք ճիշտ թիվն են հզորության պլանավորման համար, այն վերապահմամբ, որ միջուկը փաստաթղթավորում է իր հաշվառման սահմանները՝ քեշավորված ընթերցումները պահոցի ընթերցումներ չեն դառնում, և ավելի ուշ չեղարկված գրառումը չի դառնում ավարտված սարքային գրառում։
| Measurement | Question it answers |
|---|---|
| Interface bytes | How much traffic crossed this layer |
rchar and wchar | How much data the process moved through system calls |
read_bytes and write_bytes | How much work reached the storage layer |
Ինչու ֆայլի նկարագրիչը սկավառակի գրառում չէ
Օգտատիրոջ տարածության VPN-ը փոխանակում է փաթեթներ միջուկի հետ TUN սարքի միջոցով, որը սիմվոլային սարք է, ոչ սովորական ֆայլ։ Դրանից ընթերցելը հանձնում է փաթեթ, դրանում գրելը ներարկում է փաթեթ։ Պահոցի համար պատրաստվող ֆայլի բովանդակության էջ չկա, և ֆայլային համակարգի ուղի ներգրավված չէ։
Այդ պատճառով զբաղված թունելը կարող է ցույց տալ հսկայական սիմվոլային հաշվիչներ գրեթե առանց պահոցի հաշվիչների։ Գործընթացն իսկապես տեղափոխել է այդ բայթերը, և միջուկն իսկապես սկավառակի կարիք չի ունեցել դա անելու համար։
cat /proc/$(pgrep -n openvpn)/io
ip -s link show tun0
Առաջին ելքը կարդացեք որպես գործընթացի մեկնարկից կուտակված, ոչ որպես արագություն։ Երկրորդը տալիս է նույն թրաֆիկի ինտերֆեյսի տեսքը։ Երկուսի միջև մեծ բացը սպասելի է և չի վկայում արտահոսքի, հերթի կամ սխալ կարգավորման մասին։
Որտեղից են իրականում գալիս բայթերը
Մշտական ելքն ունի իր բյուջեն, և այն ղեկավարվում է գործողություններով, ոչ օգտակար բեռով։ Մանրամասն մատյանային մակարդակը, հաճախ փոփոխվող հաճախորդների ցանկը կամ նեղ ցիկլում կրկնվող սխալը կարող են զգալի գրառումներ ստեղծել, մինչ թունելը շատ քիչ է տեղափոխում։
Կարգավիճակի ֆայլը պատկեր է, որը վերագրվում է որոշակի միջակայքում, ուստի դրա արժեքը կախված է միջակայքից և նրանում եղած գրառումների քանակից։ Այն յուրաքանչյուր հաճախորդի թրաֆիկի ընթացիկ պատճեն չէ, և միջակայքի կրճատումը փոխում է գրառման ծավալը՝ չփոխելով թրաֆիկի ծավալը։
Սեփականությունը կարևոր է, երբ փնտրում եք այդ գրառումները։ Եթե ծառայությունը հաղորդագրությունները հանձնում է մատյանային դեմոնին, ապա մատյանը կամ մատյանային ֆայլը գրում է այդ դեմոնը, և բայթերը հայտնվում են դեմոնի հաշվառման մեջ, ոչ VPN գործընթացի սեփական հաշվիչներում։ Միայն VPN գործընթացին նայելը չի բացատրում ոչ սկավառակի ակտիվությունը, ոչ դրա բացակայությունը։
Այլ ներդրողներին հեշտ է բաց թողնել՝ սերտիֆիկատների և կարգավորման ընթերցումներ մեկնարկին, սեփական գրառումներ գրող կեռիկներ, հաշվառման հավելումներ, վթարային դամփեր և նույն հոսթի անկապ աշխատանքային բեռեր։ Դրանցից ոչ մեկը չպետք է գնահատել թունելի թրաֆիկը գրված բայթերին հավասարեցնելով։
Յուրաքանչյուր հաշվիչ ճիշտ կարդալ
Երեք մանրամասն որոշում են, թե արդյոք համեմատությունն իմաստ ունի։ Գործընթացի ինքնությունը կարևոր է, որովհետև վերագործարկված ծառայությունը զրոյացնում է իր հաշվիչները։ Ժամանակային միջակայքը կարևոր է, որովհետև կուտակված թիվը և վայրկյանական գրաֆիկը տարբեր չափումներ են։ Եվ միավորը կարևոր է, որովհետև մատյանային ֆայլի ներկա չափը նույնպես արագություն չէ։
grep -E 'rchar|wchar|read_bytes|write_bytes' /proc/$(pgrep -n openvpn)/io
du -sh /var/log/openvpn 2>/dev/null
journalctl --disk-usage
Եթե կասկածում եք իրական օգտակար բեռի գրառումների վրա, փնտրեք բաղադրիչ, որի գործը օգտակար բեռը պահելն է՝ փաթեթների որսման գործիք, մարմինները քեշավորող պրոքսի, արխիվացնող հավելում։ Դրանք ստեղծում են պահոցի թրաֆիկ, որը մեծանում է ըստ իրենցից պահանջվող գրանցման, և պատկանում են պահպանման ու հասանելիության առանձին քաղաքականության որոշմանը։
Հզորության պլանավորում ճիշտ թվով
Չափեք փաթեթների ուղին ցանցային թվերով՝ թողունակություն, գաղտնագրային մշակում և հիշողության տեղաշարժ։ Չափեք պահոցը ձեր իրականում կայացրած դիտարկելիության ընտրություններով՝ մատյանային մակարդակ, պահպանում, կարգավիճակի միջակայք և ցանկացած դիտավորյալ միացված որսում։
Այս երկու բյուջեները առանձին պահելը նաև հեշտացնում է դեպքերի ընթերցումը։ Լցված սկավառակը համեստ թունելային թրաֆիկի դեպքում մատնանշում է մատյաններին, որսումներին կամ ինչ-որ անկապ բանի, և ինտերֆեյսի հաշվիչը երբեք չի բացատրի դա։ Հագեցած կապը հանգիստ մատյանով մատնանշում է հակառակ ուղղությունը։
Համեմատությունը, որն արժե անել, նույն տեսակի չափումների միջև է։ Ինտերֆեյսի բայթերը ինտերֆեյսի բայթերի դիմաց ժամանակի ընթացքում պատմում են ուղու մասին։ Պահոցի գրառումները պահոցի հզորության դիմաց պատմում են պահպանման մասին։ Խաչաձև համեմատությունը՝ թրաֆիկը սկավառակի դիմաց, միայն իմաստալից է թվում և երբեք այդպիսին չէ։