Sobes.tech
Middle

Co se stane s kontejnerem, pokud bude překročen limit CPU?

sobes.tech AI

Odpověď od AI

Plánovač kontejnerů (například Docker, Kubernetes) omezí jeho CPU zdroje. To se projevuje následovně:

  • Kontejner nebude moci využít více přiděleného CPU času, i když jsou dostupné jádra.
  • Procesy uvnitř kontejneru se zpomalí, protože jim bude přiděleno méně cyklů CPU.
  • Doba provádění úkolů uvnitř kontejneru se prodlouží.
  • V logech kontejneru nebo plánovače se mohou objevit zprávy o throttlingu CPU.
  • Pokud zatížení CPU trvale překračuje limit, výkon aplikace uvnitř kontejneru se výrazně sníží, což může vést k timeoutům, chybám a dokonce k selhání aplikace.

Příklad konfigurace limitu CPU v 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 0.5 CPU

Příklad metriky ukazující throttling CPU v Kubernetes (s použitím cAdvisor/Prometheus):

# Metrika ukazující počet nanosekund, po které byl proces throttled
container_cpu_cfs_throttled_periods_total

U Dockeru jsou limity nastaveny při spuštění:

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