WSL 2 тепер має функцію відновлення пам’яті
З випуском Windows 10 Build 18917 Microsoft представила інсайдерам WSL 2, підсистему Windows для Linux 2. Він постачає справжнє ядро Linux з Windows, що зробить можливою повну сумісність системних викликів. Це перший раз, коли ядро Linux постачається разом із Windows. Windows 10 build 19013 додає ще одну чудову функцію WSL 2 - Reclaim, яка дозволяє хост-системі повторно використовувати пам'ять, яка більше не потрібна жодному процесу Linux.
Раніше, коли потреби в пам’яті віртуальної машини (VM) WSL2 зростали, або через ваш робочий процес, або у ядрі Linux загальна пам’ять, виділена віртуальній машині, також буде зростати за рахунок виділення більше пам’яті з господар. Але після завершення робочого процесу та пам’ять, яка більше не потрібна робочому процесу, не буде звільнена назад на хост. Тепер із відновленням пам’яті в WSL 2, коли пам’ять у Linux більше не потрібна, її можна повідомити на хост, де вона буде звільнена, і ваша ВМ WSL 2 зменшиться в розмірі пам’яті.
Перед:
Після:
Перегляньте наступне відео:
Як це працює
Ця функція працює від a Патч ядра Linux що дозволяє повертати невеликі суміжні блоки пам’яті на хост-машину, коли вони більше не потрібні в гостьовій системі Linux. Команда WSL оновила Ядро Linux у WSL2 щоб включити цей виправлення, і модифікував Hyper-V для підтримки цієї функції звітування про сторінку. Щоб повернути якомога більше пам’яті хосту, WSL періодично стискає пам’ять, щоб забезпечити доступність вільної пам’яті в безперервних блоках. Це працює лише тоді, коли ваш ЦП не працює. Ви можете побачити, коли це станеться, пошукаючи повідомлення «WSL2: Виконання ущільнення пам’яті» всередині виводу dmesg
команда. Якщо ви досвідчений користувач, ви можете налаштувати цю поведінку, редагуючи значення в .wslconfig. Будь ласка, перевірте Примітки до випуску WSL 19013 щоб побачити ці параметри. Крім того, якщо ви хочете запустити цю команду Linux вручну, ви можете запустити цю команду echo 1 > /proc/sys/vm/compact_memory
як користувач root.
Більше технічних подробиць і прикладів можна знайти в офіційний пост у блозі.