Sobes.tech
Middle

Was passiert mit dem Container, wenn das CPU-Limit überschritten wird?

sobes.tech KI

Antwort von AI

Der Container-Planer (z.B. Docker, Kubernetes) wird seine CPU-Ressourcen einschränken. Dies zeigt sich wie folgt:

  • Der Container kann nicht mehr die ihm zugewiesene CPU-Zeit nutzen, auch wenn Kerne verfügbar sind.
  • Prozesse innerhalb des Containers werden verlangsamt, da ihnen weniger CPU-Zyklen zugewiesen werden.
  • Die Ausführungszeit der Aufgaben im Container wird länger.
  • In den Logs des Containers oder des Planers können Nachrichten über CPU-Throttling erscheinen.
  • Wenn die CPU-Auslastung ständig das Limit überschreitet, wird die Leistung der Anwendung im Container erheblich sinken, was zu Timeouts, Fehlern und sogar Abstürzen führen kann.

Beispiel für eine CPU-Limit-Konfiguration in Kubernetes:

# resource-limits.yaml
apiVersion: v1
kind: Pod
metadata:
  name: limited-cpu-pod
spec:
  containers:
  - name: my-container
    image: my-image
    resources:
      limits:
        cpu: "500m"   # Limit von 0.5 CPU

Beispiel für eine Metrik, die CPU-Throttling in Kubernetes zeigt (mit cAdvisor/Prometheus):

# Metrik, die die Anzahl der Nanosekunden angibt, während derer der Prozess throttled wurde
container_cpu_cfs_throttled_periods_total

Bei Docker werden Limits beim Start gesetzt:

# Limit von 0.5 CPU
docker run -it --cpus=".5" my-image