Sobes.tech
Middle

Kas notiks ar konteineru, ja tiks pārsniegts CPU limits?

sobes.tech AI

Atbilde no AI

Konteineru plānotājs (piemēram, Docker, Kubernetes) ierobežos tā CPU resursus. Tas izpaužas šādi:

  • Konteiners nevarēs izmantot vairāk piešķirtā CPU laika, pat ja ir pieejami kodoli.
  • Procesi konteinera iekšienē palēnināsies, jo tiem tiks piešķirts mazāk CPU ciklu.
  • Uzdevumu izpildes laiks konteinera iekšienē palielināsies.
  • Konteinera vai plānotāja žurnālos var parādīties ziņojumi par CPU throttling (CPU ierobežošanu).
  • Ja CPU slodze pastāvīgi pārsniedz limitu, lietojumprogrammas veiktspēja konteinera iekšienē ievērojami samazinās, kas var novest pie laika iztecēšanas, kļūdām un pat lietojumprogrammas avārijām.

Kubernetes piemērs CPU limita konfigurēšanai:

# 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 limits

Metrika, kas rāda CPU throttling Kubernetes:

# Metrika, kas rāda, cik nanosekundes process bija throttled
container_cpu_cfs_throttled_periods_total

Docker gadījumā limiti tiek iestatīti startējot:

# 0.5 CPU limits
docker run -it --cpus=".5" my-image