CPU-ի բեռնվածության նոր հավասարակշռող MIT-ից

Շենանգո համակարգը նախատեսվում է օգտագործել տվյալների կենտրոններում։

CPU-ի բեռնվածության նոր հավասարակշռող MIT-ից
/ լուսանկար Մարկո Վերչ CC BY- ի կողմից

Ըստ պրովայդերներից մեկի տվյալների կենտրոնների օգտագործումը հասանելի հաշվողական հզորության միայն 20-40%-ը: Բարձր բեռների դեպքում այս ցուցանիշը կարող է հասնել 60%-ի. Ռեսուրսների այս բաշխումը հանգեցնում է այսպես կոչված «զոմբի սերվերների» առաջացմանը: Սրանք մեքենաներ են, որոնք ժամանակի մեծ մասը պարապ են նստում՝ էներգիա վատնելով: Այսօր աշխարհի սերվերների 30%-ը առանց աշխատանքի են, տարեկան սպառելով 30 մլրդ դոլարի էլեկտրաէներգիա։

MIT-ը որոշել է պայքարել հաշվողական ռեսուրսների անարդյունավետ օգտագործման դեմ։

Ինժեներական թիմ զարգացել է պրոցեսորի բեռնվածության հավասարակշռման համակարգ, որը կոչվում է Շենանգո: Դրա նպատակն է վերահսկել առաջադրանքի բուֆերի վիճակը և վերաբաշխել խրված գործընթացները (որոնք չեն կարող CPU-ի ժամանակ ստանալ) ազատ մեքենաներին:

Ինչպես է աշխատում Շենանգոն

Shenango-ն Linux գրադարան է C-ով Rust և C++ կապերով: Ծրագրի կոդը և թեստային հավելվածները հրապարակված են պահոցներ GitHub-ում:

Լուծումը հիմնված է IOKernel ալգորիթմի վրա, որն աշխատում է բազմապրոցեսորային համակարգի հատուկ միջուկի վրա: Այն կառավարում է պրոցեսորի հարցումները՝ օգտագործելով շրջանակ DPDK, որը թույլ է տալիս հավելվածներին ուղղակիորեն շփվել ցանցային սարքերի հետ:

IOKernel-ը որոշում է, թե որ միջուկներին հանձնարարել կոնկրետ առաջադրանք: Ալգորիթմը նաև որոշում է, թե քանի միջուկ կպահանջվի: Յուրաքանչյուր գործընթացի համար որոշվում են հիմնական միջուկները (երաշխավորված) և լրացուցիչները (պայթել), վերջիններս գործարկվում են պրոցեսորին ուղղված հարցումների քանակի կտրուկ աճի դեպքում:

IOKernel-ի հարցումների հերթը կազմակերպվում է այսպես օղակի բուֆեր. Յուրաքանչյուր հինգ միկրովայրկյան անգամ ալգորիթմը ստուգում է՝ արդյոք միջուկին հանձնարարված բոլոր առաջադրանքները ավարտվել են: Դա անելու համար այն համեմատում է բուֆերի գլխի ներկայիս դիրքը նրա պոչի նախկին դիրքի հետ: Եթե ​​պարզվում է, որ նախորդ ստուգման ժամանակ պոչն արդեն հերթում էր, համակարգը նշում է բուֆերային գերբեռնվածությունը և լրացուցիչ միջուկ է հատկացնում գործընթացին:

Բեռը բաշխելիս առաջնահերթությունը տրվում է այն միջուկներին, որոնց վրա նույն պրոցեսը կատարվել է ավելի վաղ և մասամբ մնացել քեշում, կամ ցանկացած անգործուն միջուկին։

CPU-ի բեռնվածության նոր հավասարակշռող MIT-ից

Շենանգոն լրացուցիչ մոտեցում է ցուցաբերում աշխատանքի գողություն. Մեկ հավելված գործարկելու համար հատկացված միջուկները վերահսկում են միմյանց ունեցած առաջադրանքների քանակը: Եթե ​​մի միջուկը ավարտում է իր առաջադրանքների ցանկը մյուսներից առաջ, ապա այն «թեթևացնում է» բեռի մի մասը իր հարևաններից:

Առավելությունները եւ թերությունները

On ըստ MIT, Shenango-ի ինժեներները կարող են վայրկյանում մշակել հինգ միլիոն հարցում և պահպանել միջին պատասխանի ժամանակը 37 միկրովայրկյան: Փորձագետները նշում են, որ որոշ դեպքերում տեխնոլոգիան կարող է տվյալների կենտրոններում պրոցեսորների օգտագործման մակարդակը հասցնել 100%-ի: Արդյունքում տվյալների կենտրոնների օպերատորները կկարողանան խնայել սերվերների գնման և սպասարկման վրա:

Լուծման ներուժ տոնել և այլ բուհերի մասնագետներ։ Կորեական ինստիտուտի պրոֆեսորի խոսքով՝ MIT համակարգը կօգնի նվազեցնել վեբ ծառայությունների հետաձգումները։ Օրինակ, դա օգտակար կլինի առցանց խանութներում: Վաճառքի օրերին նույնիսկ էջի բեռնման երկրորդ ուշացում կա приводит Կայքի դիտումների քանակի նվազմանը 11%-ով։ Բեռի արագ բաշխումը կօգնի ավելի շատ հաճախորդների սպասարկել:

Տեխնոլոգիան դեռևս ունի թերություններ. այն չի աջակցում բազմապրոցեսոր ՆՈՒՄԱ- համակարգեր, որոնցում չիպերը միացված են տարբեր հիշողության մոդուլներին և չեն «շփվում» միմյանց հետ: Այս դեպքում IOKernel-ը կարող է կարգավորել պրոցեսորների առանձին խմբի աշխատանքը, բայց ոչ բոլոր սերվերի չիպերը։

CPU-ի բեռնվածության նոր հավասարակշռող MIT-ից
/ լուսանկար Թիմ Ռեքման CC BY- ի կողմից

Նմանատիպ տեխնոլոգիաներ

Պրոցեսորի ծանրաբեռնվածության հավասարակշռման այլ համակարգեր ներառում են Arachne-ը: Այն հաշվարկում է, թե քանի միջուկ կպահանջվի հավելվածին, երբ այն մեկնարկի, և գործընթացները բաշխում է ըստ այս ցուցանիշի: Ըստ հեղինակների՝ Arachne-ում հավելվածի առավելագույն լատենտությունը կազմում է մոտ 10 հազար միկրովայրկյան:

Տեխնոլոգիան ներդրված է որպես C++ գրադարան Linux-ի համար, և դրա սկզբնական կոդը հասանելի է այստեղ GitHub.

Մեկ այլ հավասարակշռող գործիք է ZygOS-ը: Ինչպես Shenango-ն, տեխնոլոգիան օգտագործում է աշխատանքի գողության մեթոդը՝ գործընթացները վերաբաշխելու համար: Ըստ ZygOS-ի հեղինակների՝ գործիքն օգտագործելիս կիրառման միջին ուշացումը կազմում է մոտ 150 միկրովրկ, իսկ առավելագույնը՝ մոտ 450 միկրովայրկյան։ Ծրագրի կոդը նույնպես գտնվում է հանրային տիրույթում.

Արդյունքները

Ժամանակակից տվյալների կենտրոնները շարունակում են ընդլայնվել: Աճող միտումը հատկապես նկատելի է հիպերմասշտաբային տվյալների կենտրոնների շուկայում. այժմ աշխարհում. կա 430 հիպերմասշտաբային տվյալների կենտրոն, սակայն առաջիկա տարիներին դրանց թիվը կարող է աճել 30%-ով։ Այդ իսկ պատճառով պրոցեսորային բեռի հավասարակշռման տեխնոլոգիաները մեծ պահանջարկ կունենան։ Shenango-ի նման համակարգերն արդեն հասանելի են իրականացնել խոշոր կորպորացիաներ, և նման գործիքների թիվը ապագայում միայն կաճի:

Գրառումներ Առաջին բլոգից կորպորատիվ IaaS-ի մասին.

Source: www.habr.com

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