Blogue

Technologie
Gestion des ressources pour Windows Subsystem for Linux (WSL) sur un bureau Windows
5 septembre 2023
par Jean-Paul Lizotte

Introduction

Le sous-système Windows pour Linux (WSL) a transformé la façon dont les développeurs et les professionnels de l’informatique abordent le développement multiplateforme sur Windows. Vous n’avez plus à vous attaquer à la double surcharge de démarrage ou de VM pour exécuter des binaires Linux. Cependant, comme tout autre outil, WSL consomme des ressources système, et leur gestion efficace est cruciale pour des performances optimales.

Comprendre l’utilisation des ressources

Avant de plonger dans la gestion des ressources, il est essentiel de comprendre comment WSL interagit avec votre système Windows. WSL 2, la dernière version, est implémenté sur une architecture d’ordinateur virtuel, ce qui signifie qu’il partage le processeur, la RAM et les ressources de disque de votre système avec Windows.

Utilisation du processeur

WSL ne pré-alloue pas de cœurs de processeur. Au lieu de cela, il utilise dynamiquement le processeur selon les besoins, ce qui est généralement efficace. Cependant, les binaires Linux peuvent parfois être gourmands en ressources, ce qui affecte les performances globales de votre système.

Allocation de mémoire

WSL 2 a une stratégie plus agressive d’allocation de mémoire, qui pourrait mener à l’utilisation élevée de RAM. Si vous exécutez des applications Linux robustes, vous pourriez voir une partie importante de votre RAM consommée.

Espace disque

WSL crée un disque dur virtuel pour stocker vos fichiers Linux, et la taille de ce disque peut augmenter avec le temps. Les opérations gourmandes en disque sous Linux peuvent également avoir un impact sur l’espace libre sur votre système de fichiers Windows.

Stratégies de gestion des ressources

Voici quelques stratégies pour vous assurer que WSL coexiste pacifiquement avec vos autres applications Windows, optimisant à la fois pour les performances et les ressources.

Limitation de l’utilisation de la mémoire

À partir de windows Insider build 18945, vous pouvez définir manuellement la quantité de mémoire que WSL 2 est autorisé à utiliser. Ajoutez les lignes suivantes à votre  fichier .wslconfig situé dans C:\Users\<YourUsername>\.wslconfig :

[wsl2]
memory=4GB

Ici, 4GB est la quantité maximale de RAM que vous souhaitez allouer à WSL 2. Vous pouvez ajuster cette valeur en fonction de vos besoins.

Limiter l’utilisation du processeur

Vous pouvez également limiter l’utilisation du processeur en définissant le nombre de processeurs que WSL peut utiliser. Ajoutez cette ligne à votre .wslconfig :

processeurs =2

Ce paramètre limite WSL à l’utilisation de seulement deux des cœurs de processeur disponibles de votre machine.

Optimiser l’espace disque

Si l’espace disque devient préoccupant, vous pouvez compacter le disque dur virtuel WSL à l’aide de PowerShell :

optimize-vhd -Path C:\path\to\ext4.vhdx -Mode full

Assurez-vous que WSL est arrêté (wsl –shutdown) avant d’exécuter cette commande.

Ressources de surveillance

Gardez une trace de l’utilisation des ressources avec le Gestionnaire des tâches de Windows ou utilisez des outils natifs de Linux comme top ou htop dans WSL. Pour une analyse plus approfondie, vous pouvez envisager des outils de surveillance des performances tels que Grafana, intégrés aux mesures Windows et WSL.

Gestion automatisée des ressources

Étant donné que de nombreux lecteurs peuvent être des professionnels de l’informatique responsables de la gestion de plusieurs systèmes, l’automatisation de ces paramètres peut être incroyablement bénéfique. Les scripts PowerShell peuvent définir par programme des valeurs dans .wslconfig ou même exécuter la  commande optimize-vhd à intervalles planifiés.

Voici un extrait simple de PowerShell pour définir une limite de mémoire :

$wslConfigPath = "C:\Users\$env:USERNAME\.wslconfig"
$memoryLimit = "memory=4GB"

Add-Content -Path $wslConfigPath -Value $memoryLimit

 

Réflexions finales

La gestion des ressources pour WSL n’est pas seulement une question de restrictions; c’est une question d’optimisation. Avec les stratégies ci-dessus, vous pouvez garantir un environnement de développement fluide et efficace, que vous compiliez du code, exécutiez des conteneurs ou traitiez des données. Au fur et à mesure que WSL continue d’évoluer, ses capacités de gestion des ressources évolueront également, ce qui rendra de plus en plus vitale pour les professionnels de l’informatique de rester à jour sur les dernières meilleures pratiques.

En intégrant ces directives dans votre flux de travail, vous améliorerez non seulement les performances de votre système, mais vous rendrez également l’environnement WSL plus conforme et harmonisé avec les applications critiques pour l’entreprise, s’intégrant bien dans toute stratégie DevOps.

Pour plus d’informations sur la gestion des ressources pour WSL, vous pouvez vous référer à la documentation officielle de Microsoft.

En prenant le contrôle de la gestion des ressources de WSL, vous serez mieux placé pour tirer le meilleur parti de cet outil puissant, en vous assurant qu’il sert d’actif plutôt que de passif dans votre écosystème de développement.