Middle
Mis juhtub konteineriga, kui CPU piir ületatakse?
sobes.tech AI
Vastus AI-lt
Konteinerite planeerija (näiteks Docker, Kubernetes) piirab tema CPU ressursid. See avaldub järgmiselt:
- Konteiner ei saa kasutada rohkem määratud CPU aega, isegi kui vabad tuumad on olemas.
- Konteineris olevad protsessid aeglustuvad, kuna neile eraldatakse vähem CPU tsükleid.
- Konteineris olevate ülesannete täitmise aeg pikeneb.
- Konteineri või planeerija logides võivad ilmuda sõnumid CPU throttlingu kohta.
- Kui CPU koormus ületab pidevalt limiidi, langeb konteineri sisese rakenduse jõudlus märkimisväärselt, mis võib põhjustada ajastutõrkeid, vigu ja isegi rakenduse krahhe.
Kuberneteses CPU limiidi konfiguratsiooni näide:
# resource-limits.yaml
apiVersion: v1
kind: Pod
metadata:
name: limited-cpu-pod
spec:
containers:
- name: my-container
image: my-image
resources:
limits:
cpu: "500m" # 0.5 CPU limiit
Näide metrikast, mis näitab CPU throttlingut Kuberneteses (cAdvisor/Prometheus kasutades):
# Metrika, mis näitab, kui palju nanosekundit protsess oli throttled
container_cpu_cfs_throttled_periods_total
Dockeris määratakse limiidid käivitamisel:
# 0.5 CPU limiit
docker run -it --cpus=".5" my-image