Roman Gushchin () fra Facebook i mailinglisten for Linux-kerneludviklere om en ny patch-række, der implementerer en ny slab memory controller. (slab memory controller). Den nye controller er bemærkelsesværdig ved at flytte registreringen af slab fra sideniveau til kernens objekt niveau, hvilket muliggør deling af slab-sider på tværs af forskellige cgroup i stedet for at tildele separate slab-cacher til hver cgroup.
Den foreslåede tilgang forbedrer effektiviteten af slab-brugen, reducerer den anvendte slab-hukommelse med 30-45% og betydeligt mindsker den samlede hukommelsesforbrug i kernen. Ved at reducere antallet af ikke-flyttbare slab observeres der også en positiv effekt i form af mindre hukommelsesfragmentering. Den nye hukommelsescontroller forenkler betydeligt koden til fordel af slab og kræver ikke komplekse algoritmer til dynamisk oprettelse og sletning af slab-cacher for hver cgroup. Alle cgroup til hukommelse i den nye implementation bruger et fælles sæt af slab-cacher, og levetiden for slab-cacher er ikke længere knyttet til levetiden for dem, der er sat via cgroup. til hukommelsesbrug.
Den mere præcise ressourceforvaltning i den nye slab-controller burde teoretisk belaste CPU'en mere, men i praksis har forskellene vist sig at være ubetydelige. Specifikt har den nye slab-controller været brugt i flere måneder på Facebooks produktionsservere, der håndterer forskellige belastninger, uden at der er blevet opdaget betydelige regressioner. Derudover ses der et markant fald i hukommelsesforbruget — nogle værtmaskiner har opnået besparelser på op til 1 GB hukommelse, men dette tal afhænger stærkt af belastningens karakter, den samlede RAM-størrelse, antallet af CPU'er og måden, hvorpå hukommelsen bruges. Tidligere testresultater har vist et fald i hukommelsesforbruget på 650-700 MB (42% af slab-hukommelsen) på web-frontenden, 750-800 MB (35%) på en server med databask Cache og 700 MB (36%) på DNS-serveren.
Kilde: opennet.ru
