Die CPU-Ressourcen in LXC (Linux Containers) werden durch den Linux-Kernel basierend auf vordefinierten Beschränkungen und Policies zugewiesen. Es gibt verschiedene Mechanismen, um die CPU-Zuteilung zwischen den Containern zu steuern:
1. CPU Shares: Mit diesem Ansatz kann festgelegt werden, wie viel CPU-Zeit ein Container im Vergleich zu anderen Containern erhalten soll. Es handelt sich um einen relativen Wert, d.h. wenn zwei Container jeweils 1024 Shares haben, bekommen sie jeweils 50% der CPU-Zeit.
2. CPU Cap: Hierbei handelt es sich um eine prozentuale Begrenzung der CPU-Zeit, die einem Container zugewiesen werden kann. Wenn beispielsweise ein Cap von 20% gesetzt ist, dann kann der Container maximal 20% der Gesamtleistung der CPU nutzen.
3. CPU Affinity: Mit diesem Ansatz können bestimmte Prozessorkerne für einen Container reserviert werden.
4. CPU Sets: Hiermit kann festgelegt werden, welche CPUs oder CPU-Kerne ein Container nutzen darf.
Um diese Einstellungen zu ändern, werden üblicherweise die entsprechenden Config-Dateien des Containers bearbeitet. Allerdings sind diese Methoden nicht absolut sicher, da der Linux-Kernel im Notfall immer noch in der Lage ist, Prozesse zu verschieben und die Regeln zu ändern, um das Gesamtsystem stabil zu halten.