Facebook se nuwe geheuebestuurmetode

Een van die lede van die sosiale netwerk-ontwikkelingspan Facebook, Romeinse Gushchin, voorgestel in die ontwikkelaar poslys 'n stel van Linux kern pleistersgemik op die verbetering van geheuebestuur deur die implementering van 'n nuwe geheuebestuurbeheerder - blad (plaat geheue kontroleerder).

plaat verspreiding is 'n geheuebestuurmeganisme wat ontwerp is om geheue meer doeltreffend toe te ken en aansienlike fragmentasie uit te skakel. Die basis van hierdie algoritme is om toegekende geheue te stoor wat 'n voorwerp van 'n sekere tipe bevat en daardie geheue te hergebruik die volgende keer as dit vir 'n voorwerp van dieselfde tipe toegeken word. Hierdie tegniek is die eerste keer in SunOS deur Jeff Bonwick bekendgestel en word nou wyd gebruik in die kerns van baie Unix-bedryfstelsels, insluitend FreeBSD en Linux.

Die nuwe beheerder is gebaseer op die verskuiwing van bladrekeningkunde vanaf die geheuebladsyvlak na die kernobjekvlak, wat dit moontlik maak om een ​​bladbladsy in verskillende cgroups te deel, in plaas daarvan om 'n aparte kas vir elke cgroup toe te ken.

Gebaseer op die toetsresultate, volg dit dat die voorgestelde geheuebestuursmetode verhoging moontlik maak doeltreffendheid plaat gebruik % tot 45, en sal ook die algehele geheueverbruik van die OS-kern verminder. Ook, deur die aantal bladsye wat vir blad toegewys is, te verminder, word geheuefragmentasie as geheel verminder, wat nie anders kan as om die werkverrigting van die stelsel te beïnvloed nie.

Die nuwe kontroleerder is vir 'n paar maande op produksie Facebook-bedieners getoets, en tot dusver kan hierdie toetsing as suksesvol genoem word: met geen verlies in werkverrigting en geen toename in die aantal foute nie, is 'n duidelike afname in geheueverbruik opgemerk - op sommige bedieners tot 1GB. Hierdie getal is redelik subjektief, byvoorbeeld, vroeëre toetse het effens laer resultate getoon:

  • 650-700 MB op die webfrontend
  • 750-800 MB op bediener met databasiskas
  • 700 MB op DNS-bediener

>>> Skrywer se bladsy op GitHub


>>> Vroeë toetsuitslae

Bron: linux.org.ru

Voeg 'n opmerking