Middle
O que acontecerá com o contêiner se o limite de CPU for excedido?
sobes.tech IA
Resposta da IA
O programador de containers (por exemplo, Docker, Kubernetes) irá limitar os seus recursos de CPU. Isto manifesta-se da seguinte forma:
- O container não poderá usar mais tempo de CPU alocado, mesmo que existam núcleos disponíveis.
- Os processos dentro do container irão desacelerar, pois receberão menos ciclos de CPU.
- O tempo de execução das tarefas dentro do container aumentará.
- Nos logs do container ou do programador podem aparecer mensagens sobre throttling de CPU (limitação de CPU).
- Se a carga de CPU exceder constantemente o limite, o desempenho da aplicação dentro do container irá diminuir significativamente, podendo levar a timeouts, erros e até falhas na aplicação.
Exemplo de configuração de limite de CPU no Kubernetes:
# resource-limits.yaml
apiVersion: v1
kind: Pod
metadata:
name: limited-cpu-pod
spec:
containers:
- name: my-container
image: my-image
resources:
limits:
cpu: "500m" # Limite de 0.5 CPU
Exemplo de métrica que mostra throttling de CPU no Kubernetes (usando cAdvisor/Prometheus):
# Métrica que indica o número de nanosegundos durante os quais o processo foi throttled
container_cpu_cfs_throttled_periods_total
No Docker, os limites são definidos ao iniciar:
# Limite de 0.5 CPU
docker run -it --cpus=".5" my-image