Les conteneurs LXC ou Linux Containers partagent le même noyau Linux que l’hôte, ainsi que le même espace de mémoire vive (RAM). L’allocation de la mémoire vive dans les conteneurs LXC est gérée par le système d’exploitation de l’hôte.
Au départ, chaque conteneur reçoit une fraction de la mémoire vive disponible. Cependant, ces allocations ne sont pas fixes. Si un conteneur a besoin de plus de mémoire et que celle-ci est disponible, le système d’exploitation de l’hôte peut allouer plus de mémoire vive à ce conteneur.
L’allocation de la mémoire pour les conteneurs LXC peut également être gérée en utilisant des groupes de contrôle (cgroups). Cgroups est une fonctionnalité du noyau Linux qui isole, priorise et comptabilise l’utilisation des ressources système (CPU, mémoire, disque, réseau, etc.) pour un ensemble de processus.
Avec les cgroups, il est possible de définir des plafonds et des planchers pour l’utilisation des ressources par chaque conteneur. Par exemple, vous pouvez configurer un conteneur pour utiliser au minimum 1 Go de RAM et au maximum 2 Go.
Il convient de noter que même si vous définissez des limites avec cgroups, l’ordonnanceur du noyau Linux a le dernier mot sur la façon dont les ressources sont allouées entre les conteneurs. Donc, en cas de manque de ressources, l’ordonnanceur peut décider de donner plus de mémoire à un conteneur plus occupé, même si cela signifie que d’autres conteneurs reçoivent moins de mémoire.