Компания Microsoft за разширяване на възможностите на слоя WSL2 (Windows Subsystem for Linux), който позволява стартиране на Linux изпълними файлове в Windows. В експерименталните версии (build 19013) в слоя WSL2 се появи подкрепа за връщане на паметта на системата (Memory Reclamation), освободена от процесите, работещи в средата на базата на Linux ядрото.
По-рано, при увеличении потребления памяти приложениями или ядром, память выделялась виртуальной машине WSL2, но после этого оставалась закрепена и не возвращалась системе, даже после завершения ресурсоёмкого процесса и отсутствия дальнейшей необходимости в выделенной памяти. Механизм Memory Reclamation позволява да връща освободената памет в основната ОС и автоматично да намалява размера на паметта на виртуалната машина. При това се връща не само паметта, освободена от потребителските процеси, но и паметта, използвана за кеширане в ядрото на Linux. Например, при висока дискова активност се увеличава размерът на страничния кеш, в който се съхраняват съдържанието на файловете при работа на файловата система. След изпълнението на "echo 1 > /proc/sys/vm/drop_caches" кешът може да бъде изчистен и паметта да бъде върната в основната ОС.
Реализацията на Memory Reclamation се основава на
, предложен от инженери на Intel за включване в основното ядро на Linux с цел разширяване на възможностите на драйвера virtio-balloon и за системата за управление на паметта. Указаният патч е проектиран за употреба във всякакви хост системи за връщане на неизползваните страници памет на хост системата и може да се прилага с различни хипервизори. В случая с WSL2 патчът е адаптиран да връща памет на хипервизора Hyper-V.
Напомняме, че втората версия на WSL предоставя пълноценно Linux ядро вместо емулационен слой, който в реално време преобразува системните повиквания на Linux в системни повиквания на Windows. Предоставеното в WSL2 е основано на версия 4.19, което работи в среда на Windows чрез виртуална машина, вече използвана в Azure. Актуализациите на Linux ядрото се доставят чрез механизма Windows Update и се тестват в инфраструктурата за непрекъсната интеграция на Microsoft. В приложимото в ядрото специфични за WSL2 патчи са включени оптимизации за намаляване на времето за стартиране на ядрото, намаляване на потреблението на памет и оставяне в ядрото на минимално необходимия набор от драйвери и подсистеми.
Източник: opennet.ru
