Middle
Cosa succede al contenitore se viene superato il limite di CPU?
sobes.tech AI
Risposta dell'AI
Il pianificatore di container (ad esempio, Docker, Kubernetes) limiterà le risorse CPU. Questo si manifesta come:
- Il container non potrà usare più tempo di CPU assegnato, anche se ci sono core disponibili.
- I processi all’interno del container rallenteranno, poiché avranno meno cicli di CPU.
- Il tempo di esecuzione delle attività all’interno del container aumenterà.
- Nei log del container o del pianificatore potrebbero comparire messaggi di throttling della CPU.
- Se il carico della CPU supera costantemente il limite, le prestazioni dell’applicazione all’interno del container diminuiranno significativamente, portando a timeout, errori e persino crash.
Esempio di configurazione del limite di CPU 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" # Limite di 0.5 CPU
Esempio di metrica che mostra il throttling della CPU in Kubernetes (usando cAdvisor/Prometheus):
# Metrica che mostra il numero di nanosecondi durante i quali il processo è stato throttled
container_cpu_cfs_throttled_periods_total
Nel caso di Docker, i limiti vengono impostati all’avvio:
# Limite di 0.5 CPU
docker run -it --cpus=".5" my-image