WSL 2 heeft nu een functie voor het terugwinnen van geheugen
Met de release van Windows 10 Build 18917 introduceerde Microsoft WSL 2 bij Insiders, het Windows-subsysteem voor Linux 2. Het levert een echte Linux-kernel met Windows die volledige compatibiliteit met systeemaanroepen mogelijk maakt. Dit is de eerste keer dat een Linux-kernel wordt geleverd met Windows. Windows 10 build 19013 voegt nog een geweldige WSL 2-functie toe: Memory Reclaim, waarmee het hostsysteem geheugen kan hergebruiken dat niet langer nodig is voor een Linux-proces.
Advertentie
Voorheen, toen de geheugenbehoeften van de WSL2 Virtual Machine (VM) zouden groeien, hetzij vanuit uw workflow of door de Linux-kernel, zou het totale geheugen dat aan de VM is toegewezen ook groeien door meer geheugen toe te wijzen aan de gastheer. Maar als de workflow eenmaal is voltooid, wordt het geheugen dat niet langer nodig is voor de workflow, niet teruggegeven aan de host. Nu met geheugenterugwinning in WSL 2, wanneer het geheugen in Linux niet langer nodig is, kan het worden teruggemeld naar de host waar het zal worden vrijgemaakt en zal uw WSL 2 VM in geheugen krimpen.
Voordat:
Na:
Bekijk de volgende video:
Hoe het werkt
Deze functie wordt mogelijk gemaakt door een Linux-kernelpatch waarmee kleine aaneengesloten geheugenblokken kunnen worden teruggestuurd naar de hostmachine wanneer ze niet langer nodig zijn in de Linux-gast. Het WSL-team heeft de Linux-kernel in WSL2 om deze patch op te nemen en Hyper-V aangepast om deze paginarapportagefunctie te ondersteunen. Om zoveel mogelijk geheugen terug te geven aan de host, comprimeert WSL periodiek geheugen om ervoor te zorgen dat er vrij geheugen beschikbaar is in aaneengesloten blokken. Dit werkt alleen als je CPU niet actief is. U kunt zien wanneer dit gebeurt door te zoeken naar het bericht 'WSL2: Performing memory compaction' in de uitvoer van de dmesg
opdracht. Als u een hoofdgebruiker bent, kunt u dit gedrag configureren door waarden te bewerken in .wslconfig. Controleer a.u.b. de WSL 19013 release-opmerkingen om deze opties te zien. Als alternatief, als je deze Linux-opdracht handmatig wilt uitvoeren, kun je de opdracht uitvoeren echo 1 > /proc/sys/vm/compact_memory
als de rootgebruiker.
Meer technische details en voorbeelden vindt u in de officiële blogpost.