WSL 2 a maintenant une fonction de récupération de mémoire
Avec la sortie de Windows 10 Build 18917, Microsoft a présenté WSL 2 à Insiders, le sous-système Windows pour Linux 2. Il embarque un véritable noyau Linux avec Windows qui rendra possible la compatibilité totale des appels système. C'est la première fois qu'un noyau Linux est livré avec Windows. Windows 10 build 19013 ajoute une autre fonctionnalité WSL 2 intéressante - la récupération de mémoire, qui permet au système hôte de réutiliser la mémoire qui n'est plus nécessaire à aucun processus Linux.
Publicité
Auparavant, lorsque les besoins en mémoire de la machine virtuelle (VM) WSL2 augmentaient, soit à partir de votre flux de travail, soit en le noyau Linux, la mémoire globale allouée à la machine virtuelle augmenterait également en allouant plus de mémoire à partir du hôte. Mais, une fois le workflow terminé, cette mémoire qui n'est plus nécessaire au workflow ne serait pas restituée à l'hôte. Désormais, avec la récupération de mémoire dans WSL 2, lorsque la mémoire dans Linux n'est plus nécessaire, elle peut être signalée à l'hôte où elle sera libérée et votre machine virtuelle WSL 2 diminuera en taille de mémoire.
Avant:
Après:
Regardez la vidéo suivante :
Comment ça fonctionne
Cette fonctionnalité est alimentée par un Correctif du noyau Linux qui permet de renvoyer de petits blocs de mémoire contigus à la machine hôte lorsqu'ils ne sont plus nécessaires dans l'invité Linux. L'équipe du WSL a mis à jour le Noyau Linux en WSL2 pour inclure ce correctif, et Hyper-V modifié pour prendre en charge cette fonctionnalité de rapport de page. Afin de restituer autant de mémoire que possible à l'hôte, WSL compacte périodiquement la mémoire pour s'assurer que la mémoire libre est disponible dans des blocs contigus. Cela ne fonctionne que lorsque votre CPU est inactif. Vous pouvez voir quand cela se produit en recherchant le message « WSL2: Exécution du compactage de la mémoire » à l'intérieur de la sortie du dmesg
commander. Si vous êtes un utilisateur expérimenté, vous pouvez configurer ce comportement en modifiant les valeurs dans .wslconfig. S'il vous plaît, vérifiez le Notes de version WSL 19013 pour voir ces options. Alternativement, si vous souhaitez exécuter cette commande Linux manuellement, vous pouvez exécuter la commande echo 1 > /proc/sys/vm/compact_memory
en tant qu'utilisateur root.
Vous pouvez trouver plus de détails techniques et des exemples dans le article de blog officiel.