Microsoft Corporation over de uitbreiding van de WSL2-laag (Windows Subsystem for Linux), die de uitvoering van Linux-uitvoerbare bestanden op Windows mogelijk maakt. In experimentele versies (build 19013) ondersteunt de WSL2-laag het teruggeven van vrijgegeven geheugen aan het systeem (Memory Reclamation), dat door processen in een op een Linux-kernel gebaseerde omgeving is vrijgegeven.
Voorheen, wanneer het geheugenverbruik door applicaties of de kernel steeg, werd geheugen toegewezen aan de virtuele machine WSL2, maar bleef daarna vastzitten en werd niet teruggegeven aan het systeem, zelfs niet na beëindiging van een geheugenintensief proces en na gebrek aan verdere behoefte aan de toegewezen geheugen. Het mechanisme van Memory Reclamation maakt het mogelijk om vrijgegeven geheugen terug te geven aan het hoofdbesturingssysteem en automatisch de grootte van het geheugen van de virtuele machine te verkleinen. Hierbij wordt niet alleen het geheugen teruggegeven dat door gebruikersprocessen is vrijgegeven, maar ook het geheugen dat is gebruikt voor caching in de Linux-kernel. Bijvoorbeeld, bij hoge schijfactiviteit vergroot de paginacache, waarin de inhoud van bestanden wordt opgeslagen tijdens de werking van het bestandssysteem. Na het uitvoeren van "echo 1 > /proc/sys/vm/drop_caches" kan de cache worden gewist en kan het geheugen aan het hoofdbesturingssysteem worden teruggegeven.
De implementatie van Memory Reclamation is gebaseerd op
, voorgesteld door ingenieurs van Intel voor opname in de hoofd-Linux-kernel ter uitbreiding van de mogelijkheden van de virtio-balloon-driver en voor het geheugenbeheersysteem. Deze patch is ontworpen voor gebruik in elke gastomgeving om ongebruikte geheugenbladen aan het hostsysteem terug te geven en kan worden toegepast met verschillende hypervisors. Voor WSL2 is de patch aangepast voor het teruggeven van geheugen aan de hypervisor Hyper-V.
Ter herinnering, de tweede versie van WSL levering van een volledig functionerende Linux-kernel in plaats van een emulator die system calls van Linux naar system calls van Windows omzet. De in WSL2 geleverde is gebaseerd op release 4.19, die draait in een Windows-omgeving met behulp van een virtuele machine die al in Azure wordt gebruikt. Updates voor de Linux-kernel worden via Windows Update geleverd en getest in de infrastructuur van continue integratie bij Microsoft. Toegepaste specifieke patches voor WSL2 in de kernel omvatten optimalisaties om de opstarttijd van de kernel te verkorten, het geheugenverbruik te verminderen en het minimale benodigde aantal drivers en subsysteem in de kernel te behouden.
Bron: opennet.ru
