Sobes.tech
Middle

Šta će se desiti sa kontejnerom ako bude prekoračen limit CPU?

sobes.tech АИ

Одговор од АИ

Planer kontejnera (na primer, Docker, Kubernetes) će ograničiti njegove CPU resurse. To se manifestuje na sledeći način:

  • Kontejner neće moći da koristi više od dodeljenog mu CPU vremena, čak i ako su dostupni jezgra.
  • Procesi unutar kontejnera će usporiti, jer će im biti dodeljeno manje CPU ciklusa.
  • Vreme izvršavanja zadataka unutar kontejnera će se povećati.
  • U logovima kontejnera ili planer-a mogu se pojaviti poruke o throttling-u CPU (ograničenje CPU).
  • Ako opterećenje CPU stalno premašuje limit, performanse aplikacije unutar kontejnera će se znatno smanjiti, što može dovesti do timeout-ova, grešaka i čak padova aplikacije.

Primer konfiguracije limita CPU u Kubernetes-u:

# resource-limits.yaml
apiVersion: v1
kind: Pod
metadata:
  name: limited-cpu-pod
spec:
  containers:
  - name: my-container
    image: my-image
    resources:
      limits:
        cpu: "500m"   # Limit od 0.5 CPU

Primer metrike koja prikazuje throttling CPU u Kubernetes-u (sa korišćenjem cAdvisor/Prometheus):

# Metrika koja pokazuje broj nanosekundi tokom kojih je proces bio throttled
container_cpu_cfs_throttled_periods_total

U Docker-u, limiti se postavljaju pri pokretanju:

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