Microsoft Företaget om utvidelsen av WSL2 (Windows Subsystem for Linux), som muliggjør kjøring av Linux-kjørbare filer i Windows. I eksperimentelle versjoner (build 19013) ble det lagt til støtte for minnefrigjøring (Memory Reclamation) i WSL2, som frigjør minne som brukes av prosesser som kjører i et Linux-basert miljø.
Tidligere, når minneforbruket økte av applikasjoner eller kjernen, ble minne tildelt WSL2-virtuelle maskiner, men forble allokert selv etter at ressursintensive prosesser var avsluttet og det ikke lenger var behov for det tildelte minnet. Mekanismen Memory Reclamation gjør det mulig å returnere frigjort minne til hovedoperativsystemet og automatisk redusere størrelsen på den virtuelle maskinen. Her returneres ikke bare minne som frigjøres av brukerprosesser, men også minne som ble brukt til cache i Linux-kjernen. For eksempel, med høy diskaktivitet øker størrelsen på sidetextcachen, hvor innholdet fra filer lagres under FS-operasjoner. Etter å ha utført «echo 1 > /proc/sys/vm/drop_caches» kan cachen tømmes og minnet returneres til hovedoperativsystemet.
Implementeringen av Memory Reclamation baserer seg på
, foreslått av ingeniører fra Intel for å bli inkludert i hovedkjernen av Linux for å utvide virtio-balloon-driverens funksjonalitet og minneadministrasjonssystemet. Den nevnte patchen er designet for bruk i alle gjeste-systemer for å returnere ubrukt minne til verts-systemet, og kan brukes med forskjellige hypervisorer. For WSL2 er patchen tilpasset for å returnere minne til Hyper-V-hypervisoren.
Husk at den andre versjonen av WSL leverer et fullt Linux-kjerne i stedet for en emulator som oversetter Linux-systemanrop til Windows-systemanrop. Den leverte i WSL2 er basert på versjon 4.19, som kjører i Windows ved hjelp av en virtuell maskin som allerede brukes i Azure. Oppdateringer for Linux-kjernen leveres via Windows Update og testes i Microsofts kontinuerlige integrasjonsinfrastruktur. De spesifikke patchene for WSL2-kjernen inkluderer optimaliseringer for å redusere oppstartstiden til kjernen, redusere minneforbruket og beholde et minimalt sett med drivere og delsystemer i kjernen.
Källa: opennet.ru
