Roman Gushchin (
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
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
Kilde: opennet.ru