Microsoft vállalat a WSL2 (Windows Subsystem for Linux) lehetőségeinek bővítéséről, amely lehetővé teszi Linux futtatható fájlok végrehajtását Windows alatt. A kísérleti buildben (build 19013) a WSL2 rétegben megjelent a memória-visszaszerzés (Memory Reclamation) támogatása, amely lehetővé teszi a Linux kernel környezetében működő folyamatok által felszabadított memória visszaadását a rendszernek.
Korábban, ha a memóriahasználat növekedett az alkalmazások vagy a kernel által, a memória a WSL2 virtuális gépnek lett kiosztva, de ezután a memória rögzítve maradt, és nem tért vissza a rendszerbe, még a memóriaigényes folyamat befejezése után sem, amikor már nem volt szükség a kiosztott memóriára. A Memory Reclamation mechanizmus lehetővé teszi a felszabadított memória visszaadását az operációs rendszernek, és automatikusan csökkenti a virtuális gép memória méretét. Ezen kívül nemcsak a felhasználói folyamatok által felszabadított memória, hanem a Linux kernelben használt cache-elt memória is visszatér. Például, amikor magas lemezaktivitás van, a lapozott cache mérete nő, amely a fájlok tartalmát tárolja a fájlrendszer működése során. Az „echo 1 > /proc/sys/vm/drop_caches” parancs végrehajtásával a cache törölhető, és a memória visszaadható az operációs rendszernek.
A Memory Reclamation megvalósítása
Intel mérnökei által javasolt javításon alapul, amelyet a Linux alapkernelébe kívánnak beilleszteni a virtio-balloon driver és a memória kezelési rendszer képességeinek bővítése érdekében. A javítás célja, hogy bármely vendégrendszerben vissza tudja adni a nem használt memóriaoldalakat a gazdaszerver rendszerének, és különféle hypervisorokkal alkalmazható. A WSL2 esetében a javítást a Hyper-V hypervisorhoz való memória-visszaadásra adaptálták.
Emlékezzünk arra, hogy a WSL második verziója teljes Linux kernel telepítésével helyettesíti az emulátort, amely valós időben fordítja a Linux rendszerhívásokat Windows rendszerhívásokká. A WSL2-ben a 4.19-es verzión alapul, amely Windows környezetben fut egy Azure-ban már alkalmazott virtuális gép segítségével. A Linux kernel frissítéseket a Windows Update mechanizmusán keresztül szállítanak, és a Microsoft folyamatos integrációs infrastruktúrájában tesztelik. A WSL2 kerneljében alkalmazott specifikus javítások optimalizálják a kernel indítási idejét, csökkentik a memóriafogyasztást, és minimálisan szükséges driverek és alrendszerek halmazát hagyják a kernelben.
Forrás: opennet.ru
