Ըստ պրովայդերներից մեկի տվյալների կենտրոնների օգտագործումը հասանելի հաշվողական հզորության միայն 20-40%-ը: Բարձր բեռների դեպքում այս ցուցանիշը կարող է հասնել 60%-ի. Ռեսուրսների այս բաշխումը հանգեցնում է այսպես կոչված «զոմբի սերվերների» առաջացմանը: Սրանք մեքենաներ են, որոնք ժամանակի մեծ մասը պարապ են նստում՝ էներգիա վատնելով: Այսօր աշխարհի սերվերների 30%-ը առանց աշխատանքի են, տարեկան սպառելով 30 մլրդ դոլարի էլեկտրաէներգիա։
MIT-ը որոշել է պայքարել հաշվողական ռեսուրսների անարդյունավետ օգտագործման դեմ։
Ինժեներական թիմ զարգացել է պրոցեսորի բեռնվածության հավասարակշռման համակարգ, որը կոչվում է Շենանգո: Դրա նպատակն է վերահսկել առաջադրանքի բուֆերի վիճակը և վերաբաշխել խրված գործընթացները (որոնք չեն կարող CPU-ի ժամանակ ստանալ) ազատ մեքենաներին:
Ինչպես է աշխատում Շենանգոն
Shenango-ն Linux գրադարան է C-ով Rust և C++ կապերով: Ծրագրի կոդը և թեստային հավելվածները հրապարակված են պահոցներ GitHub-ում:
Լուծումը հիմնված է IOKernel ալգորիթմի վրա, որն աշխատում է բազմապրոցեսորային համակարգի հատուկ միջուկի վրա: Այն կառավարում է պրոցեսորի հարցումները՝ օգտագործելով շրջանակ DPDK, որը թույլ է տալիս հավելվածներին ուղղակիորեն շփվել ցանցային սարքերի հետ:
IOKernel-ը որոշում է, թե որ միջուկներին հանձնարարել կոնկրետ առաջադրանք: Ալգորիթմը նաև որոշում է, թե քանի միջուկ կպահանջվի: Յուրաքանչյուր գործընթացի համար որոշվում են հիմնական միջուկները (երաշխավորված) և լրացուցիչները (պայթել), վերջիններս գործարկվում են պրոցեսորին ուղղված հարցումների քանակի կտրուկ աճի դեպքում:
IOKernel-ի հարցումների հերթը կազմակերպվում է այսպես օղակի բուֆեր. Յուրաքանչյուր հինգ միկրովայրկյան անգամ ալգորիթմը ստուգում է՝ արդյոք միջուկին հանձնարարված բոլոր առաջադրանքները ավարտվել են: Դա անելու համար այն համեմատում է բուֆերի գլխի ներկայիս դիրքը նրա պոչի նախկին դիրքի հետ: Եթե պարզվում է, որ նախորդ ստուգման ժամանակ պոչն արդեն հերթում էր, համակարգը նշում է բուֆերային գերբեռնվածությունը և լրացուցիչ միջուկ է հատկացնում գործընթացին:
Բեռը բաշխելիս առաջնահերթությունը տրվում է այն միջուկներին, որոնց վրա նույն պրոցեսը կատարվել է ավելի վաղ և մասամբ մնացել քեշում, կամ ցանկացած անգործուն միջուկին։
Շենանգոն լրացուցիչ մոտեցում է ցուցաբերում աշխատանքի գողություն. Մեկ հավելված գործարկելու համար հատկացված միջուկները վերահսկում են միմյանց ունեցած առաջադրանքների քանակը: Եթե մի միջուկը ավարտում է իր առաջադրանքների ցանկը մյուսներից առաջ, ապա այն «թեթևացնում է» բեռի մի մասը իր հարևաններից:
Առավելությունները եւ թերությունները
On ըստ MIT, Shenango-ի ինժեներները կարող են վայրկյանում մշակել հինգ միլիոն հարցում և պահպանել միջին պատասխանի ժամանակը 37 միկրովայրկյան: Փորձագետները նշում են, որ որոշ դեպքերում տեխնոլոգիան կարող է տվյալների կենտրոններում պրոցեսորների օգտագործման մակարդակը հասցնել 100%-ի: Արդյունքում տվյալների կենտրոնների օպերատորները կկարողանան խնայել սերվերների գնման և սպասարկման վրա:
Լուծման ներուժ տոնել և այլ բուհերի մասնագետներ։ Կորեական ինստիտուտի պրոֆեսորի խոսքով՝ MIT համակարգը կօգնի նվազեցնել վեբ ծառայությունների հետաձգումները։ Օրինակ, դա օգտակար կլինի առցանց խանութներում: Վաճառքի օրերին նույնիսկ էջի բեռնման երկրորդ ուշացում կա приводит Կայքի դիտումների քանակի նվազմանը 11%-ով։ Բեռի արագ բաշխումը կօգնի ավելի շատ հաճախորդների սպասարկել:
Տեխնոլոգիան դեռևս ունի թերություններ. այն չի աջակցում բազմապրոցեսոր ՆՈՒՄԱ- համակարգեր, որոնցում չիպերը միացված են տարբեր հիշողության մոդուլներին և չեն «շփվում» միմյանց հետ: Այս դեպքում IOKernel-ը կարող է կարգավորել պրոցեսորների առանձին խմբի աշխատանքը, բայց ոչ բոլոր սերվերի չիպերը։
Պրոցեսորի ծանրաբեռնվածության հավասարակշռման այլ համակարգեր ներառում են Arachne-ը: Այն հաշվարկում է, թե քանի միջուկ կպահանջվի հավելվածին, երբ այն մեկնարկի, և գործընթացները բաշխում է ըստ այս ցուցանիշի: Ըստ հեղինակների՝ Arachne-ում հավելվածի առավելագույն լատենտությունը կազմում է մոտ 10 հազար միկրովայրկյան:
Տեխնոլոգիան ներդրված է որպես C++ գրադարան Linux-ի համար, և դրա սկզբնական կոդը հասանելի է այստեղ GitHub.
Մեկ այլ հավասարակշռող գործիք է ZygOS-ը: Ինչպես Shenango-ն, տեխնոլոգիան օգտագործում է աշխատանքի գողության մեթոդը՝ գործընթացները վերաբաշխելու համար: Ըստ ZygOS-ի հեղինակների՝ գործիքն օգտագործելիս կիրառման միջին ուշացումը կազմում է մոտ 150 միկրովրկ, իսկ առավելագույնը՝ մոտ 450 միկրովայրկյան։ Ծրագրի կոդը նույնպես գտնվում է հանրային տիրույթում.
Արդյունքները
Ժամանակակից տվյալների կենտրոնները շարունակում են ընդլայնվել: Աճող միտումը հատկապես նկատելի է հիպերմասշտաբային տվյալների կենտրոնների շուկայում. այժմ աշխարհում. կա 430 հիպերմասշտաբային տվյալների կենտրոն, սակայն առաջիկա տարիներին դրանց թիվը կարող է աճել 30%-ով։ Այդ իսկ պատճառով պրոցեսորային բեռի հավասարակշռման տեխնոլոգիաները մեծ պահանջարկ կունենան։ Shenango-ի նման համակարգերն արդեն հասանելի են իրականացնել խոշոր կորպորացիաներ, և նման գործիքների թիվը ապագայում միայն կաճի: