Facebook har foreslått en ny mekanisme for minnebehandling for Linux-kjernen

Roman Gushchin (Roman Gushchin) fra Facebook publisert på e-postlisten til Linux-kjerneutviklere et sett med patcher med implementering av en ny minneallokeringskontroller skive (plateminnekontroller). Den nye kontrolleren er kjent for å flytte skiveregnskap fra minnesidenivå til kjerneobjektnivå, noe som gjør det mulig å dele skivesider i forskjellige cgroups, i stedet for å tildele separate platecacher for hver cgroup.

Den foreslåtte tilnærmingen gjør det mulig å øke effektiviteten ved bruk av plate, redusere størrelsen på minnet som brukes til plate med 30-45 %, og redusere det totale minneforbruket til kjernen betydelig. Ved å redusere antall ikke-flyttbare plater er det også en positiv effekt i å redusere minnefragmentering. Den nye minnekontrolleren forenkler koden for regnskap for plater betydelig og krever ikke bruk av kompliserte algoritmer for dynamisk å lage og slette platebuffere for hver cgroup. Alle minne-cgroups i den nye implementeringen bruker et felles sett med plate-cacher, og levetiden til plate-cacher er ikke lenger knyttet til levetiden til de som er installert gjennom cgroup begrensninger på minnebruk.

Den mer nøyaktige ressursregnskapet implementert i den nye platekontrolleren burde teoretisk sett belaste CPUen mer, men i praksis viste forskjellene seg å være ubetydelige. Spesielt har den nye platekontrolleren blitt brukt i flere måneder på Facebook-produksjonsservere som håndterer ulike typer arbeidsbelastning, og ingen merkbare regresjoner er ennå identifisert. Samtidig er det en betydelig reduksjon i minneforbruk - på noen verter var det mulig å spare opptil 1 GB minne, men denne indikatoren avhenger sterkt av belastningens art, den totale størrelsen på RAM, antall CPUer og funksjonene ved å jobbe med minne. Tidligere tester viste reduksjon i minneforbruk med 650-700 MB (42 % av plateminnet) på nettfronten, 750-800 MB (35%) på serveren med en DBMS-cache og 700 MB (36%) på DNS-serveren.

Kilde: opennet.ru

Legg til en kommentar