Google-technici zijn deze maand begonnen met het plaatsen van nieuwe patches voor het Linux-geheugenbeheersubsysteem en gerelateerde componenten voor een functie genaamd Working Set Reporting.

De Working Set Reporting-functionaliteit bouwt voort op MGLRU en is bedoeld om beter om te gaan met overbelaste VM’s of containers. De recente RFC-patchreeks vat de zaken als volgt samen:

Achtergrond
==========
Voor zowel clients als servers kunnen workloads worden gecontaineriseerd met virtuele machines, kubernetes-containers of memcgs. De werkbelasting verschilt tussen servers en clients.

Servertaken hebben een meer voorspelbare geheugenvoetafdruk en maken zich zorgen over stabiliteit en prestaties. Een techniek is proactief terugwinnen, waarbij geheugen wordt teruggewonnen voordat de geheugendruk wordt overschreden, en de hoeveelheid daadwerkelijk vrij geheugen op een machine zichtbaar wordt.

Client-applicaties zijn sneller en onvoorspelbaarder omdat ze reageren op gebruikersinteracties. Het systeem moet snel kunnen reageren op interessante gebeurtenissen en zich bewust zijn van het energieverbruik.

Een overbelaste machine kan de voetafdruk van de containers verkleinen via memory.max/high, virtio-balloon, enz.
Het ballonapparaat is een typisch mechanisme voor het delen van geheugen tussen een gast-VM en host. Het is met name handig in scenario’s met meerdere VM’s waarbij het geheugen te veel wordt belast en dynamische wijzigingen in de VM-geheugengrootte vereist zijn naarmate de werkbelasting op het systeem verandert. Het ballonapparaat heeft nu een aantal functies om te helpen bij het oordeelkundig delen van geheugenbronnen tussen de gasten en de gastheer (bijv. Gratis paginahints, statistieken, gratis paginarapportage). Voor een hostcontrollerprogramma dat is belast met het optimaliseren van geheugenresources in een multi-VM-omgeving, moet het deze tools gebruiken om twee concrete vragen te beantwoorden:

1. Wanneer is het juiste moment om de ballon aan te passen?
2. Met hoeveel moet de ballon worden vervangen?

Een vroeg project om zo’n”auto-balloon”-mogelijkheid te ontwikkelen, vond plaats in 2013. Meer recentelijk zijn er extra VIRTIO-apparaten gemaakt (virtio-mem, virtio-pmem) die meer tools bieden voor een aantal van use cases, elk met voor-en nadelen. Een eerder voorstel om MGLRU uit te breiden met werksetinterfaces richt zich op de server use cases, maar werkt niet voor clients.

Voorstel
==========
Een uniforme rapportagestructuur voor de werkset die werkt voor zowel servers als clients. Het omvat histogrammen per knooppunt op de host, histogrammen per memcg en een virtio-ballon driver-extensie.

Er zijn twee manieren om met Working Set-rapportage te werken: gebeurtenisgestuurd en querying. De hostcontroller kan meldingen ontvangen van terugwinning, die een rapport produceert, of de controller kan rechtstreeks om het histogram vragen.
Patch 1 introduceert het rapportagemechanisme voor de werkset en de hostinterfaces. Zie het gedeelte Details voor
Patch 2 breidt de virtio-ballon-driver uit met Working Set-rapportage.
De initiële RFC bouwt voort op MGLRU en is bedoeld als een Proof of Concept voor discussie en verfijningen. T.J. en ik streef ernaar de actieve/inactieve LRU-en werksetschatting vanuit de gebruikersruimte te ondersteunen. We werken aan demoscripts en krijgen ook enkele cijfers.

Naast de wijzigingen in het Linux-kernelgeheugenbeheer zijn er QEMU-patches voor VirtIO Balloon om de functie Working Set Reporting toe te voegen.

“De use case is een host met overcommitted geheugen en 1 of meer VM’s. Het doel is om zowel tijdige als nauwkeurige informatie te krijgen over het algehele geheugengebruik om de juiste terugwinningsactiviteiten te stimuleren, aangezien in sommige clientapparaten het gebruik gevallen kan een VM een aanzienlijk deel van het totale geheugen gedurende een bepaalde periode nodig hebben, maar dan een rustige periode ingaan die resulteert in een groot aantal koude pagina’s in de gast.

Het ballonapparaat heeft nu een aantal functies om helpen bij het delen van geheugenbronnen tussen de gasten en de gastheer (bijv. gratis paginahints, statistieken, gratis paginarapportage.) Zoals vermeld in dia 12 in [1], heeft de ballon geen goed mechanisme om het terugwinnen van gastcache aan te sturen. Onze use case omvat zowel typische paginacache als”applicatiecaches”met geheugen dat moet worden weggegooid in tijden van systeembrede geheugendruk. In sommige gevallen kan virtio-pmem een ​​methode zijn voor hostcontrole van gastcache, maar er zijn ongewenste veiligheidsimplicaties.”

En dan is er nog de voorgestelde VirtIO-specificatie-update die vorige week ter discussie is verzonden.

Of voor een eenvoudiger overzicht van deze werksetrapportagefunctionaliteit hebben de betrokken Google-technici de dia’s met ons gedeeld van hun LSF/MM/BPF 2023-gesprek over deze voorgestelde functie:

De melding mechanisme voor werksetrapportages blijft in ontwikkeling. Het zal zeker interessant zijn om te zien wat er allemaal uit dit Working Set Reporting-initiatief komt.

Categories: IT Info