Middle
Mi történik a konténerrel, ha túllépik a CPU-korlátot?
sobes.tech MI
Válasz az MI-től
A konténerütemező (pl. Docker, Kubernetes) korlátozni fogja a CPU erőforrásokat. Ez a következőképpen nyilvánul meg:
- A konténer nem fogja tudni több rendelkezésre álló CPU időt használni, még akkor sem, ha elérhető magok vannak.
- A konténeren belüli folyamatok lelassulnak, mivel kevesebb CPU ciklust kapnak.
- A feladatok futási ideje a konténeren belül megnő.
- A konténer vagy a ütemező logjaiban CPU throttling (CPU korlátozás) üzenetek jelenhetnek meg.
- Ha a CPU terhelés folyamatosan meghaladja a limitet, az alkalmazás teljesítménye jelentősen csökken, ami időtúllépésekhez, hibákhoz és akár alkalmazásleállásokhoz vezethet.
Példa a Kubernetesben a CPU limit konfigurációjára:
# 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 limit
Példa a Kubernetesben a CPU throttling mutató mérésére (cAdvisor/Prometheus használatával):
# Mérőszám, ami megmutatja, hogy hány nanosekundumig volt a folyamat throttled
container_cpu_cfs_throttled_periods_total
Docker esetén a limiteket indításkor állítják be:
# 0.5 CPU limit
docker run -it --cpus=".5" my-image