L Розробники Microsoft оголосили про розширення рівня WSL2 (Підсистема Windows для Linux) у експериментальних збірках Windows Insider (збірка 19013). У них вони про це повідомляють додали сумісність повернути систему пам'яті (Відновлення пам'яті), випущений процесами, що працюють в середовищі на базі ядра Linux.
Раніше, у разі більшого споживання пам'яті за програмами або ядром, пам'яттю його було призначено віртуальній машині WSL2, але після цього він залишився фіксованим і не повернувся до системи, навіть після завершення ресурсоємного процесу та відсутності підвищеної потреби у виділеній пам'яті.
Тепер із витребуванням пам'яті в WSL 2, коли пам'ять у Linux більше не потрібна, хост може бути проінформований, де він буде звільнений, і обсяг пам'яті вашої WSL 2 зменшиться.
Механізм відновлення пам'яті дозволяє повернути звільнену пам'ять в основну операційну систему і автоматично зменшити обсяг пам'яті віртуальної машини. У цьому випадку повертається не тільки пам’ять, звільнена користувацькими процесами, але й пам’ять, яка використовується для кешування в ядрі Linux.
Користувацькі процеси - це не єдине, що використовує пам’ять у віртуальній машині Linux. Ядро Linux також використовує багато кеш-пам’яті, включаючи кеш-сторінку, де зберігається вміст файлів для покращення продуктивності файлової системи. Давайте розглянемо ще один реальний приклад, щоб побачити, як це вступає в дію.
Наприклад, при великій активності диска розмір кешу сторінки збільшується, в яких вміст файлів врегульовано під час роботи ФС. Після виконання "echo 1> / proc / sys / vm / drop_caches", кеш-пам’ять можна очистити, а пам’ять повернутися до основної операційної системи.
Реалізація пам'яті заснована на патчі, запропонованому інженерами Intel для включення в основне ядро Linux для розширення можливостей драйвера virtio-balloon та системи управління пам'яттю.
Ця функція керується виправленням ядра Linux, яке дозволяє повертати невеликі суміжні блоки пам'яті на головну машину, коли вони більше не потрібні в гостьовій системі Linux. Ми оновили ядро Linux у WSL2, щоб включити цей патч та модифікований Hyper-V для підтримки цієї функції звітування про сторінки.
Вказаний патч призначений для використання в будь-якій гостьовій системі повернути невикористані сторінки пам’яті хост-системі і може використовуватися з кількома гіпервізорами. У випадку WSL2, патч призначений для повернення пам'яті до гіпервізора Hyper-V.
Важливо пам’ятати про це друге видання WSL відрізняється наданням повного ядра Linux, а не емулятором на льоту, який перекладає системні дзвінки Linux на системні дзвінки Windows.
WSL 2 - це нова версія архітектури, якаe дозволяє підсистемі Windows для Linux запускати двійкові файли Linux ELF64 у Windows. Ця нова версія WSL 2 використовує функції Hyper-V для створення легкої віртуальної машини з мінімальним ядром Linux.
Ядро Linux, поставлене в WSL2, базується на версії 4.19, яка працює в середовищі Windows за допомогою віртуальної машини, яка вже використовується в Azure. Оновлення для ядра Linux доставляються через механізм оновлення Windows і тестуються на інфраструктурі постійної інтеграції Microsoft.
Виправлення, характерні для WSL2, що використовуються в ядрі, включають оптимізацію для зменшення часу запуску ядра, зменшення споживання пам'яті та залишення ядра з мінімально необхідним набором драйверів та підсистем.
Якщо ви хочете дізнатись більше подробиць про це Ви можете ознайомитися з ними в оригінальній публікації. Посилання це.