Middle
Wat gebeurt er met de container als de CPU-limiet wordt overschreden?
sobes.tech AI
Antwoord van AI
De containerplanner (bijvoorbeeld Docker, Kubernetes) zal zijn CPU-bronnen beperken. Dit uit zich in het volgende:
- De container kan niet meer de toegewezen CPU-tijd gebruiken, zelfs als er beschikbare kernen zijn.
- Processen binnen de container worden vertraagd, omdat ze minder CPU-cycli krijgen.
- De uitvoeringstijd van taken binnen de container zal toenemen.
- In de logs van de container of de planner kunnen berichten over CPU-throttling verschijnen.
- Als de CPU-belasting constant de limiet overschrijdt, zal de prestaties van de applicatie binnen de container aanzienlijk afnemen, wat kan leiden tot timeouts, fouten en zelfs crashes.
Voorbeeld van een CPU-limietconfiguratie 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" # Limiet van 0.5 CPU
Voorbeeld van een metriek die CPU-throttling in Kubernetes toont (met cAdvisor/Prometheus):
# Metriek die het aantal nanoseconden aangeeft dat het proces is gethrottled
container_cpu_cfs_throttled_periods_total
In Docker worden limieten ingesteld bij het starten:
# Limiet van 0.5 CPU
docker run -it --cpus=".5" my-image