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