WSL 2 har nu funktion för minnesåtervinning
Med lanseringen av Windows 10 Build 18917 introducerade Microsoft WSL 2 till Insiders, Windows Subsystem för Linux 2. Den levererar en riktig Linux-kärna med Windows som kommer att göra fullständig systemanropskompatibilitet möjlig. Detta är första gången en Linux-kärna levereras med Windows. Windows 10 build 19013 lägger till ytterligare en fantastisk WSL 2-funktion - Memory Reclaim, som gör att värdsystemet kan återanvända minne som inte längre behövs av någon Linux-process.
Annons
Tidigare, när minnesbehoven för WSL2 Virtual Machine (VM) skulle växa, antingen från ditt arbetsflöde eller med Linux-kärnan, skulle det totala minnet som allokerats till den virtuella datorn också växa genom att allokera mer minne från värd. Men när arbetsflödet är klart, kommer det minne som inte längre behövs av arbetsflödet att frigöras tillbaka till värden. Nu med minnesåtervinning i WSL 2, när minnet i Linux inte längre behövs kan det rapporteras tillbaka till värden där det kommer att frigöras och din WSL 2 VM kommer att krympa i minnesstorlek.
Innan:
Efter:
Kolla in följande video:
Hur det fungerar
Denna funktion drivs av en Linux kernel patch som gör att små sammanhängande minnesblock kan returneras till värddatorn när de inte längre behövs i Linux-gästen. WSL-teamet har uppdaterat Linux-kärna i WSL2 att inkludera denna patch, och modifierade Hyper-V för att stödja denna sidrapporteringsfunktion. För att återföra så mycket minne till värden som möjligt komprimerar WSL regelbundet minnet för att säkerställa att ledigt minne finns tillgängligt i angränsande block. Detta körs bara när din CPU är inaktiv. Du kan se när detta händer genom att leta efter meddelandet "WSL2: Utför minneskomprimering" i utgången på dmesg
kommando. Om du är en avancerad användare kan du konfigurera detta beteende genom att redigera värden i .wslconfig. Vänligen kontrollera WSL 19013 release notes för att se dessa alternativ. Alternativt om du vill köra detta Linux-kommando manuellt kan du köra kommandot echo 1 > /proc/sys/vm/compact_memory
som root-användare.
Du kan hitta mer tekniska detaljer och exempel i officiellt blogginlägg.