Sobes.tech
Middle

Que se passera-t-il avec le conteneur si la limite de CPU est dépassée?

sobes.tech IA

Réponse de l'IA

Le planificateur de conteneurs (par exemple, Docker, Kubernetes) limitera ses ressources CPU. Cela se manifeste par:

  • Le conteneur ne pourra pas utiliser plus de temps CPU alloué, même si des cœurs sont disponibles.
  • Les processus à l’intérieur du conteneur seront ralentis, car ils se verront attribuer moins de cycles CPU.
  • Le temps d’exécution des tâches à l’intérieur du conteneur augmentera.
  • Des messages concernant le throttling CPU (limitation de CPU) peuvent apparaître dans les logs du conteneur ou du planificateur.
  • Si la charge CPU dépasse constamment la limite, la performance de l’application à l’intérieur du conteneur diminuera considérablement, ce qui peut entraîner des délais d’attente, des erreurs et même des défaillances de l’application.

Exemple de configuration de limite CPU dans 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"   # Limite de 0.5 CPU

Exemple de métrique montrant le throttling CPU dans Kubernetes (avec cAdvisor/Prometheus):

# Métrique indiquant le nombre de nanosecondes pendant lesquelles le processus a été throttlé
container_cpu_cfs_throttled_periods_total

Dans Docker, les limites sont définies lors du lancement:

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