Sobes.tech
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