Microsoft оголосила про розширення можливостей WSL2 (Windows Subsystem for Linux)
Microsoft оголосила про розширення можливостей WSL2 (Windows Subsystem for Linux)
Microsoft оголосила про розширення можливостей прошарку WSL2 (Windows Subsystem for Linux), що забезпечує запуск виконуваних файлів Linux в Windows. В експериментальних збірках Windows Insider (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. Ядро Linux, що поставляється в WSL2, засноване на випуску 4.19, який виконується в оточенні Windows за допомогою віртуальної машини, що вже застосовується в Azure. Оновлення для ядра Linux доставляються через Windows Update і тестуються в інфраструктурі безперервної інтеграції Microsoft. Специфічні для WSL2 патчі, що застосовуються в ядрі, включають оптимізації для скорочення часу запуску ядра, зменшення споживання пам'яті та залишення в ядрі мінімально необхідного набору драйверів і підсистем.