Middle
Čo sa stane s kontajnerom, ak bude prekročen limit CPU?
sobes.tech AI
Odpoveď od AI
Plánovač kontajnerov (napríklad Docker, Kubernetes) obmedzí jeho CPU zdroje. To sa prejavuje nasledovne:
- Kontajner nebude môcť použiť viac prideleného CPU času, aj keď sú dostupné jadrá.
- Procesy vo vnútri kontajnera sa spomalia, pretože im bude pridelených menej CPU cyklov.
- Čas vykonávania úloh vo vnútri kontajnera sa predĺži.
- V logoch kontajnera alebo plánovača sa môžu objaviť správy o throttlingu CPU.
- Ak zaťaženie CPU neustále prekračuje limit, výkon aplikácie vo vnútri kontajnera sa výrazne zníži, čo môže viesť k timeoutom, chybám a dokonca k zlyhaniu aplikácie.
Príklad konfigurácie 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
Príklad metriky ukazujúcej throttling CPU v Kubernetes (s použitím cAdvisor/Prometheus):
# Metrika, ktorá ukazuje počet nanosekúnd, počas ktorých bol proces throttled
container_cpu_cfs_throttled_periods_total
V prípade Docker-u sa limity nastavujú pri spustení:
# Limit 0.5 CPU
docker run -it --cpus=".5" my-image