La empresa Microsoft acerca de la expansión de las capacidades de la capa WSL2 (Subsistema de Windows para Linux), que permite la ejecución de archivos ejecutables de Linux en Windows. En las versiones experimentales (compilación 19013) en la capa WSL2 se ha añadido soporte para la recuperación de memoria (Memory Reclamation) liberada por procesos que se ejecutan en un entorno basado en el núcleo de Linux.
Anteriormente, en caso de un aumento en el consumo de memoria por aplicaciones o el núcleo, se asignaba memoria a la máquina virtual WSL2, pero luego quedaba fijada y no se devolvía al sistema, incluso después de que el proceso que consumía muchos recursos finalizara y no hubiera más necesidad de la memoria asignada. El mecanismo de recuperación de memoria permite devolver la memoria liberada al sistema operativo principal y reducir automáticamente el tamaño de la memoria de la máquina virtual. De este modo, se devuelve no solo la memoria liberada por procesos de usuario, sino también la memoria utilizada para el almacenamiento en caché en el núcleo de Linux. Por ejemplo, con una alta actividad en disco, aumenta el tamaño de la caché de páginas, que almacena el contenido de archivos al trabajar con el sistema de archivos. Después de ejecutar "echo 1 > /proc/sys/vm/drop_caches", se puede limpiar la caché y devolver la memoria al sistema operativo principal.
La implementación de la recuperación de memoria se basa en
, propuesto por ingenieros de Intel para ser incluido en el núcleo principal de Linux con el fin de ampliar las capacidades del controlador virtio-balloon y para el sistema de gestión de memoria. El parche mencionado está diseñado para su uso en cualquier sistema invitado para devolver páginas de memoria no utilizadas al sistema host y puede aplicarse con diferentes hipervisor. En el caso de WSL2, el parche se ha adaptado para devolver memoria al hipervisor Hyper-V.
Recordemos que la segunda edición de WSL por la entrega de un núcleo Linux completo en lugar de un emulador que traduce sobre la marcha las llamadas del sistema Linux a las llamadas del sistema Windows. El núcleo que se proporciona en WSL2 basado en la versión 4.19, que se ejecuta en un entorno de Windows mediante una máquina virtual, ya utilizada en Azure. Las actualizaciones para el núcleo de Linux se entregan a través del mecanismo de Windows Update y se prueban en la infraestructura de integración continua de Microsoft. Los parches específicos para WSL2 utilizados en el núcleo incluyen optimizaciones para reducir el tiempo de arranque del núcleo, disminuir el consumo de memoria y mantener un conjunto mínimo de controladores y subsistemas en el núcleo.
Fuente: opennet.ru
