Sobes.tech
Middle

¿Qué sucederá con el contenedor si se supera el límite de CPU?

sobes.tech AI

Respuesta de la IA

El planificador de contenedores (por ejemplo, Docker, Kubernetes) limitará sus recursos de CPU. Esto se manifiesta en lo siguiente:

  • El contenedor no podrá usar más tiempo de CPU asignado, incluso si hay núcleos disponibles.
  • Los procesos dentro del contenedor se ralentizarán, ya que se les asignarán menos ciclos de CPU.
  • El tiempo de ejecución de las tareas dentro del contenedor aumentará.
  • En los registros del contenedor o del planificador pueden aparecer mensajes sobre throttling de CPU (CPU throttling).
  • Si la carga de CPU supera constantemente el límite, el rendimiento de la aplicación dentro del contenedor disminuirá significativamente, lo que puede provocar tiempos de espera, errores e incluso fallos en la aplicación.

Ejemplo de configuración de límite de CPU en 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"   # Límite de 0.5 CPU

Ejemplo de métrica que muestra throttling de CPU en Kubernetes (usando cAdvisor/Prometheus):

# Métrica que muestra la cantidad de nanosegundos durante los cuales el proceso fue throttled
container_cpu_cfs_throttled_periods_total

En Docker, los límites se establecen al iniciar:

# Límite de 0.5 CPU
docker run -it --cpus=".5" my-image