Linux-Container (LXC) verwenden das Cgroup-Ressourcenmanagement des Linux-Kernels, um RAM-Ressourcen zwischen Containern zuzuteilen. Cgroups (Control Groups) ermöglichen es, die Verwendung von systematischen Ressourcen wie CPU, Disk I/O und Speicher (RAM) zu begrenzen, priorisieren, kontrollieren und abzurechnen.
Für RAM gibt es zwei Hauptlimits: memory.limit_in_bytes und memory.memsw.limit_in_bytes. Das erste limitiert den physischen RAM, während das zweite sowohl RAM als auch Swap-Speicher limitiert.
Diese Limits können dynamisch zur Laufzeit des Containers oder statisch während der Konfiguration des Containers eingestellt werden. Standardmäßig erbt ein Container seine Erlaubnisse von seinem übergeordneten Container, es sei denn, es werden spezifische Limits festgelegt.
Es ist wichtig anzumerken, dass RAM-Ressourcen nicht ausschließlich einem bestimmten Container zugewiesen werden. Stattdessen werden Ressourcen je nach Bedarf und Verfügbarkeit zwischen Containern geteilt, wobei die in Cgroups festgelegten Limits beachtet werden. Dabei werden Ressourcen bei Bedarf von weniger prioritisierten Containern zu höher priorisierten Containern verschoben.
Es sollte auch beachtet werden, dass die genaue Steuerung und Buchhaltung von RAM-Ressourcen in LXC aufgrund der gemeinsamen Nutzung des Kernels durch alle Container und der Art und Weise, wie der Linux-Kernel Speicher verwaltet, eine komplexe Angelegenheit ist.