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