WSL 2 har nu Memory Reclaim-funktion
Med udgivelsen af Windows 10 Build 18917 introducerede Microsoft WSL 2 til Insiders, Windows-undersystemet til Linux 2. Det sender en rigtig Linux-kerne med Windows, der vil gøre fuld systemopkaldskompatibilitet mulig. Dette er første gang en Linux-kerne leveres med Windows. Windows 10 build 19013 tilføjer endnu en fantastisk WSL 2-funktion - Memory Reclaim, som gør det muligt for værtssystemet at genbruge hukommelse, der ikke længere er nødvendig for nogen Linux-proces.
Tidligere, hvor hukommelsesbehovet for WSL2 Virtual Machine (VM) ville vokse, enten fra din arbejdsgang eller med Linux-kernen, ville den samlede hukommelse, der er allokeret til VM'en, også vokse ved at allokere mere hukommelse fra vært. Men når først arbejdsgangen er færdig, vil den hukommelse, som ikke længere er nødvendig for arbejdsgangen, ikke blive frigivet tilbage til værten. Nu med hukommelsesgenvinding i WSL 2, når hukommelsen i Linux ikke længere er nødvendig, kan den rapporteres tilbage til værten, hvor den vil blive frigivet, og din WSL 2 VM vil krympe i hukommelsesstørrelse.
Før:
Efter:
Tjek følgende video:
Hvordan det virker
Denne funktion er drevet af en Linux kerne patch der tillader små sammenhængende hukommelsesblokke at blive returneret til værtsmaskinen, når de ikke længere er nødvendige i Linux-gæsten. WSL-teamet har opdateret Linux-kerne i WSL2 at inkludere denne patch og ændret Hyper-V for at understøtte denne siderapporteringsfunktion. For at returnere så meget hukommelse til værten som muligt, komprimerer WSL med jævne mellemrum hukommelsen for at sikre, at ledig hukommelse er tilgængelig i sammenhængende blokke. Dette kører kun, når din CPU er inaktiv. Du kan se, hvornår dette sker ved at se efter 'WSL2: Udfører hukommelseskomprimering'-meddelelsen inde i outputtet på dmesg
kommando. Hvis du er en superbruger, kan du konfigurere denne adfærd ved at redigere værdier i .wslconfig. Tjek venligst WSL 19013 release notes for at se disse muligheder. Alternativt, hvis du gerne vil køre denne Linux-kommando manuelt, kan du køre kommandoen echo 1 > /proc/sys/vm/compact_memory
som root-bruger.
Du kan finde flere tekniske detaljer og eksempler i officielt blogindlæg.