Microsoft реализовал в WSL2 (Windows Subsystem for Linux) возвращение памяти системе

31 октября 2019 года

Компания 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 патчи включают оптимизации для сокращения времени запуска ядра, уменьшения потребления памяти и оставления в ядре минимально необходимого набора драйверов и подсистем.

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Microsoft реализовал в WSL2 (Windows Subsystem for Linux) возвращение памяти системе», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.