Facebook-ն առաջարկել է Linux միջուկի համար slab հիշողության կառավարման նոր մեխանիզմ

Ռոման Գուշչին (Ռոման Գուշչին) Ֆեյսբուքից հրատարակվել Linux միջուկի մշակողների փոստային ցուցակում մի շարք պատչեր՝ հիշողության բաշխման նոր կարգավորիչի ներդրմամբ սալաքար (սալաքարային հիշողության կարգավորիչ): Նոր վերահսկիչն աչքի է ընկնում սալերի հաշվառումը հիշողության էջի մակարդակից միջուկի օբյեկտի մակարդակ տեղափոխելու համար, ինչը հնարավորություն է տալիս սալաքարային էջերը կիսել տարբեր cխմբերում՝ յուրաքանչյուր cgroup-ի համար առանձին սալաքարեր հատկացնելու փոխարեն:

Առաջարկվող մոտեցումը հնարավորություն է տալիս բարձրացնել սալաքարի օգտագործման արդյունավետությունը, նվազեցնել սալաքարի համար օգտագործվող հիշողության չափը 30-45%-ով և զգալիորեն նվազեցնել միջուկի ընդհանուր հիշողության սպառումը: Նվազեցնելով ոչ շարժական սալերի քանակը, կա նաև դրական ազդեցություն հիշողության մասնատման նվազեցման գործում: Հիշողության նոր կարգավորիչը զգալիորեն պարզեցնում է սալերի հաշվառման կոդը և չի պահանջում բարդ ալգորիթմների օգտագործում՝ յուրաքանչյուր cխմբի համար սալաքարերի դինամիկ ստեղծման և ջնջման համար: Հիշողության բոլոր cgroups-ը նոր ներդրման մեջ օգտագործում է slab cache-ների ընդհանուր հավաքածու, և slab cache-ի կյանքն այլևս կապված չէ cgroup-ի միջոցով տեղադրվածների ծառայության ժամկետի հետ: սահմանափակումներ հիշողության օգտագործման վրա:

Ավելի ճշգրիտ ռեսուրսների հաշվառումը, որն իրականացվել է նոր սալաքար կարգավորիչում, տեսականորեն պետք է ավելի շատ բեռնի պրոցեսորը, բայց գործնականում տարբերությունները պարզվեցին, որ աննշան են: Մասնավորապես, նոր սալաքարային կարգավորիչը մի քանի ամիս է, ինչ օգտագործվում է արտադրական Facebook սերվերների վրա, որոնք կառավարում են տարբեր տեսակի ծանրաբեռնվածություն, և դեռևս նկատելի հետընթացներ չեն հայտնաբերվել: Միևնույն ժամանակ, նկատվում է հիշողության սպառման զգալի կրճատում. որոշ հոսթների վրա հնարավոր էր խնայել մինչև 1 ԳԲ հիշողություն, բայց այս ցուցանիշը մեծապես կախված է բեռի բնույթից, RAM-ի ընդհանուր չափից, պրոցեսորների քանակից: և հիշողության հետ աշխատելու առանձնահատկությունները. Նախորդ թեստեր ցույց տվեց հիշողության սպառման կրճատում 650-700 ՄԲ-ով (սլաբ հիշողության 42%-ով) վեբ ճակատային մասում, 750-800 ՄԲ (35%) սերվերում DBMS քեշով և 700 ՄԲ (36%) DNS սերվերում:

Source: opennet.ru

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