Sobes.tech
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