Microsoft vient de publier une nouvelle version de WSL qui apporte de nombreuses améliorations et corrections de bugs. Mais ce n’est pas tout : cette version introduit également des fonctionnalités expérimentales, qui visent à optimiser l’expérience de WSL pour différents scénarios d’utilisation. Ces fonctionnalités sont optionnelles et peuvent être activées ou désactivées via un fichier de configuration nommé .wslconfig, situé dans le répertoire personnel de l’utilisateur Windows (par exemple : C:\Users\<votre nom d’utilisateur>\.wslconfig).
Nouveau mode réseau – Miroir
Parmi les nouvelles fonctionnalités expérimentales de WSL, il y a le mode de réseau “mirrored” (miroir), qui offre une meilleure compatibilité réseau et de nouvelles possibilités pour les utilisateurs de WSL. Le mode “mirrored” présente plusieurs avantages par rapport au mode par défaut de WSL, qui est le mode “bridged” (pont). Par exemple, il permet de résoudre les problèmes de DNS qui pouvaient survenir avec certaines configurations réseau. Il permet également d’appliquer les règles du pare-feu Windows à WSL, et de contrôler plus finement le trafic entrant et sortant du VM WSL. En outre, il facilite l’utilisation des proxies en faisant en sorte que WSL utilise automatiquement les informations de proxy de Windows.
Envoyé par Microsoft
Code : | Sélectionner tout |
experimental.networkingMode=mirrored
Récupération automatique de la mémoire
Cette fonctionnalité permet à la machine virtuelle (VM) de WSL de réduire sa consommation de mémoire au fil du temps, en libérant la mémoire mise en cache lorsque le CPU est inactif. Cela permet d’éviter que la VM ne consomme trop de ressources sur le système hôte. Il existe deux modes pour cette fonctionnalité : gradual, qui libère la mémoire progressivement, et drop, qui libère la mémoire instantanément.
Microsoft explique ceci :
Lorsque [la fonctionnalité] est réglée sur gradual, après 5 minutes d'inactivité, WSL commencera lentement à libérer la mémoire cache sous Linux et la rendra disponible sous forme de mémoire libre pour l'hôte Windows. Cela signifie que la taille de la mémoire de votre VM WSL sera automatiquement réduite lorsque vous ne l'utilisez pas*!
Elle marche en détectant par WSL que vous êtes inactif en voyant si l'utilisation du processeur est continuellement faible pendant 5 minutes, puis nous commençons à récupérer la mémoire cache en utilisant la fonctionnalité cgroup memory.reclaim. Nous récupérons une partie fixe de la taille de la mémoire de votre VM, qui est calculée de telle sorte que si votre VM était pleine de mémoire cache, elle passerait à zéro mémoire cache après 30 minutes (par exemple*: si vous disposez de 3*000*Mo de mémoire, nous récupérons 100*Mo chaque minute). La fonctionnalité memory.reclaim cgroup nous permet de récupérer intelligemment une partie de la mémoire au fil du temps, en trouvant un équilibre entre performances et utilisation de la mémoire. Cependant, cette fonctionnalité nécessite la désactivation des groupes de contrôle v1 dans WSL, ce qui peut entraîner certains problèmes. Lors des premiers tests, nous avons remarqué que cela interromprait le démon Docker lors de son exécution en tant que service dans WSL. Par conséquent, si vous utilisez cette fonctionnalité, nous vous recommandons d'utiliser Docker Desktop pour vos besoins Docker. Nous travaillons avec l'équipe Docker pour résoudre ce problème à l'avenir.
Elle marche en détectant par WSL que vous êtes inactif en voyant si l'utilisation du processeur est continuellement faible pendant 5 minutes, puis nous commençons à récupérer la mémoire cache en utilisant la fonctionnalité cgroup memory.reclaim. Nous récupérons une partie fixe de la taille de la mémoire de votre VM, qui est calculée de telle sorte que si votre VM était pleine de mémoire cache, elle passerait à zéro mémoire cache après 30 minutes (par exemple*: si vous disposez de 3*000*Mo de mémoire, nous récupérons 100*Mo chaque minute). La fonctionnalité memory.reclaim cgroup nous permet de récupérer intelligemment une partie de la mémoire au fil du temps, en trouvant un équilibre entre performances et utilisation de la mémoire. Cependant, cette fonctionnalité nécessite la désactivation des groupes de contrôle v1 dans WSL, ce qui peut entraîner certains problèmes. Lors des premiers tests, nous avons remarqué que cela interromprait le démon Docker lors de son exécution en tant que service dans WSL. Par conséquent, si vous utilisez cette fonctionnalité, nous vous recommandons d'utiliser Docker Desktop pour vos besoins Docker. Nous travaillons avec l'équipe Docker pour résoudre ce problème à l'avenir.
DNS Tunelling
Cette fonctionnalité modifie la façon dont WSL résout les requêtes DNS, en utilisant le serveur DNS du système hôte au lieu du serveur DNS du réseau local. Cela permet d’améliorer la compatibilité réseau lorsque le système hôte utilise un VPN ou un proxy.
Envoyé par Microsoft
autoProxy
Cette fonctionnalité permet à WSL d’utiliser automatiquement les informations du proxy HTTP du système hôte, au lieu de nécessiter une configuration manuelle dans Linux. Cela permet d’améliorer la compatibilité réseau lorsque le système hôte utilise un proxy HTTP.
Envoyé par Microsoft
Cette fonctionnalité permet d’appliquer les règles du pare-feu Windows à WSL, et d’autoriser des contrôles avancés du pare-feu pour la VM de WSL. Cela permet d’améliorer la sécurité et la gestion du trafic réseau entre Windows et Linux.
Le pare-feu Hyper-V vous permet de spécifier les paramètres et les règles du pare-feu qui s'appliqueront à WSL. De plus, par défaut, tous les paramètres et règles de pare-feu existants que vous avez sous Windows seront automatiquement appliqués à vos distributions WSL. Après avoir activé cette option, vous pouvez la tester en créant de nouvelles règles de pare-feu dans les paramètres du pare-feu Windows et en constatant qu'elles s'appliquent instantanément à WSL, ou vous pouvez créer une nouvelle règle qui s'applique uniquement à WSL directement en l'exécutant dans PowerShell : Nouveau- NetFirewallHyperVRule
Et vous ?
Que pensez-vous de WSL ? L'avez-vous déjà utilisé ?
Quelles sont les fonctionnalités expérimentales de WSL que vous avez testées ou que vous comptez tester ?
Quelles sont les suggestions ou les demandes de fonctionnalités que vous avez pour WSL ? Quels sont les problèmes ou les bugs que vous avez rencontrés ?