Linux

Comment limiter les ressources qu’un conteneur LXD peut utiliser

Dans un article précédent, vous pouvez découvrir ce qu’est LXD et comment le démarrer, au cas où vous ne seriez pas familiarisé avec la plate-forme.

Dans la plupart des cas, vous utiliserez plusieurs conteneurs sur le même système pour diviser un tout plus grand en composants plus petits. Il est logique de limiter la quantité de ressources que chaque composant peut utiliser. Mais pourquoi? Évidemment, le nombre de raisons est aussi illimité que les scénarios pour lesquels vous pouvez utiliser des conteneurs.

Quand les limites sur les conteneurs LXD peuvent être utiles

  • Fournir un service et donner à chaque client une instance LXD. Par exemple, il peut s’agir d’un grand serveur et vous hébergez chaque site Web client dans un conteneur distinct. Si un site Web reçoit une explosion soudaine de trafic, cela peut ralentir les autres instances. Avec des limites, un seul conteneur ralentira et les autres fonctionneront normalement.
  • Dans un scénario similaire, vous pouvez facilement vendre différents plans de service. Un client peut payer pour un montant X de ressources, et l’autre peut payer pour un montant Y. Et vous pouvez facilement ajuster cela avec quelques commandes simples.
  • Vous pouvez vous protéger contre des formes plus simples d’attaques par déni de service. Lorsqu’un conteneur est bombardé, il atteindra ses limites d’utilisation des ressources. Les autres conteneurs ne seront pas affectés.
  • Vous disposez de deux conteneurs qui utiliseront chacun 100% du temps CPU disponible. Cependant, vous voulez que l’un termine le travail plus rapidement que l’autre. Par exemple, on peut rendre une vidéo pour un projet dont vous avez besoin demain. Vous pouvez affecter 90 % du temps CPU au premier et 10 % au second.
  • Psssssst :  Pouvez-vous transférer des mondes Java vers Windows 10 ?

    Bien sûr, vous pouvez avoir vos propres raisons. Et si vous n’utilisez qu’un seul conteneur sur l’ensemble du système, vous n’en aurez peut-être même pas besoin. Mais si vous utilisez plusieurs conteneurs, vous devez presque toujours définir certains types de limites. Parce qu’une attaque, un bogue ou une autre forme de mauvais comportement dans une instance LXD peut affecter l’ensemble du système et le ralentir. Plus vous avez de conteneurs, plus la probabilité d’un tel scénario augmente.

    Comment définir des limites de ressources sur les conteneurs LXD

    Le contrôle des ressources relatif aux opérations de disque nécessitera l’installation de ZFS. Si vous avez suivi le tutoriel ici, il est déjà installé. Sinon, installez les utilitaires ZFS comme indiqué dans le didacticiel, puis réexécutez la commande ci-dessous. Choisissez ZFS lorsqu’on lui a demandé quel backend de stockage utiliser.

    Limiter l’utilisation de la mémoire

    Dans les commandes ci-dessous, remplacez « container_name » par le nom réel de votre conteneur. Définir une limite de mémoire est aussi simple que de saisir :

    Tapez « Go » au lieu de « Mo » si vous souhaitez utiliser des gigaoctets au lieu de mégaoctets.

    Limiter l’utilisation du processeur

    Lorsque vous souhaitez limiter le nombre de cœurs de processeur qu’un conteneur peut utiliser, saisissez :

    Pour « épingler » sur des cœurs de processeur spécifiques, utilisez :

    Cela obligerait le conteneur à n’utiliser que le premier processeur. Pour utiliser le second, vous devez taper 1-1. Pour utiliser tous les cœurs du processeur du premier au troisième, vous devez taper 0-3.

    Psssssst :  Réponse rapide : Comment installer une lampe dans Ubuntu ?

    Un autre type de limite est le temps CPU qu’un conteneur peut utiliser.

    Cela ne permettrait au conteneur d’utiliser que dix millisecondes de temps CPU toutes les 100 millisecondes, soit environ 10 % d’un cœur de processeur.

    Limiter l’utilisation du disque

    Pour limiter les ressources liées au disque, vous devez d’abord ajouter un périphérique de disque racine à votre conteneur. Il existe déjà par défaut, hérité du profil LXD par défaut. Mais vous ne pouvez pas modifier ses paramètres conteneur par conteneur tant que vous ne l’avez pas fait.

    Si vous avez nommé votre pool différemment, remplacez « default » par le nom de votre pool de stockage. Si vous avez oublié son nom, vous pouvez l’afficher avec :

    Pour limiter l’espace disque qu’une instance LXD peut utiliser :

    Malheureusement, les limites d’E/S (les « vitesses » de lecture/écriture et les IOPS) ne fonctionnent pas pour le moment.

    Limiter l’utilisation du réseau

    Comme pour les disques, vous devez d’abord ajouter un périphérique Ethernet virtuel que vous pouvez configurer. Trouvez le nom de votre pont réseau qui connecte vos instances LXD au monde extérieur.

    Remplacez « lxdbr0 » si nécessaire (si le pont est nommé différemment dans votre cas). Si vous n’avez pas choisi le type de réseau comme ponté (réponse par défaut), dans les étapes de configuration « lxd init », vous devrez peut-être adapter la commande ci-dessous pour refléter votre choix. Par exemple, vous devrez peut-être également remplacer « nictype » par tout ce que vous avez utilisé pour votre réseau LXD.

    Enfin, définissez des limites d’entrée (téléchargement) et/ou de sortie (téléchargement) du réseau.

    1Mbit est un mégabit (pas un mégaoctet). Un octet contient 8 bits, ce qui signifie que cela limitera les téléchargements à environ 1/8 = 0,125 Mbits par seconde, soit environ 120 kilo-octets. Donc, si vous voulez le télécharger avec 1 Mo/s (mégaoctet), multipliez par 8 et définissez la limite d’entrée à 8 Mbit.

    Pour la sortie, utilisez :

    Conclusion

    Cela couvre les propriétés les plus couramment utilisées concernant les limites des ressources. Mais il y a beaucoup plus de variables que vous pouvez définir avec lxc config device set et lxc config set. Vous pouvez en savoir plus sur ces propriétés de conteneur ajustables sur la page GitHub de LXD.

    Cet article est-il utile ? Oui Non

    Bouton retour en haut de la page

    Adblock détecté

    Veuillez désactiver votre bloqueur de publicités pour pouvoir visualiser le contenu de la page. Pour un site indépendant avec du contenu gratuit, c’est une question de vie ou de mort d’avoir de la publicité. Merci de votre compréhension! Merci