مايكروسوفت о расширении возможностей прослойки WSL2 (Windows النظام الفرعي لـ Linux، مما يضمن تشغيل الملفات القابلة للتنفيذ Linux в Windowsفي التجمعات التجريبية (build 19013) в прослойке WSL2 появилась поддержка возвращения системе памяти (Memory Reclamation), освобождаемой процессами, работающими в окружении на базе ядра Linux.
Ранее в случае роста потребления памяти приложениями или ядром, память выделялась виртуальной машине WSL2, но после этого оставалась закреплённой и не возвращалась системе, даже после завершения ресурсоёмкого процесса и отсутствия дальнейшей потребности в выделенной памяти. Механизм Memory Reclamation позволяет возвращать освобождённую память в основную ОС и автоматически уменьшать размер памяти виртуальной машины. При этом возвращается не только память, освобождаемая пользовательскими процессами, но и память, применявшаяся для кэширования в ядре Linux. Например, при высокой дисковой активности увеличивается размер страничного кэша, в котором оседает содержимое файлов при работе ФС. После выполнения «echo 1 > /proc/sys/vm/drop_caches» кэш можно очистить и вернуть память в основную ОС.
يعتمد تنفيذ استعادة الذاكرة على
, предложенном инженерами Intel для включения в основное ядро Linux с целью расширения возможностей драйвера virtio-balloon и для системы управления памятью. Указанный патч рассчитан на использование в любых гостевых системах для возвращения неиспользуемых страниц памяти хост-системе и может применяться с различными гипервизорами. В случае WSL2 патч адаптирован для возвращения памяти гипервизору Hyper-V.
دعونا نتذكر أن النسخة الثانية من WSL تسليم نواة كاملة Linux بدلاً من استخدام محاكي يقوم بترجمة استدعاءات النظام أثناء التشغيل Linux استدعاءات النظام Windows. Поставляемое в WSL2 основано на выпуске 4.19, который выполняется в окружении Windows при помощи виртуальной машины, уже применяемой в Azure. Обновления для ядра Linux доставляются через механизм Windows Update и тестируются в инфраструктуре непрерывной интеграции Microsoft. Применяемые в ядре специфичные для WSL2 патчи включают оптимизации для сокращения времени запуска ядра, уменьшения потребления памяти и оставления в ядре минимально необходимого набора драйверов и подсистем.
المصدر: opennet.ru
