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. Поставляемое в WSL2 ядро Linux основано на выпуске 4.19, который выполняется в окружении Windows при помощи виртуальной машины, уже применяемой в Azure. Обновления для ядра Linux доставляются через механизм Windows Update и тестируются в инфраструктуре непрерывной интеграции Microsoft. Применяемые в ядре специфичные для WSL2 патчи включают оптимизации для сокращения времени запуска ядра, уменьшения потребления памяти и оставления в ядре минимально необходимого набора драйверов и подсистем.

Источник: opennet.ru

Добавить комментарий