tgoop.com/devopslib/59
Last Update:
Почему у тебя в Kubernetes всё тормозит?
Сегодня разберёмся с одной из самых частых причин лагов в Kubernetes — CPU throttling. Ты выделяешь контейнеру 500m CPU, думаешь, что всё окей, а потом он еле шевелится. Почему?
Проблема в том, как работает cgroups и как kubelet распределяет ресурсы. Если ты задаёшь limits, но не задаёшь requests, Kubernetes может планировать твой под на перегруженный нод. А если ты задаёшь limits=requests, то любое кратковременное превышение лимита приводит к throttling, даже если на ноде полно свободных ресурсов!
Как диагностировать?
1. Запусти kubectl top pod и посмотри, использует ли под меньше CPU, чем ты ожидал.
2. Используй kubectl debug или kubectl exec и глянь в /sys/fs/cgroup/cpu/cpu.stat. Если там много throttled_time — значит, контейнер душится.
3. Можно также использовать cadvisor или metrics-server для наблюдения за метриками.
Что делать:
• Не задавай limits, если не уверен, что они нужны.
• Используй только requests, если хочешь гибкости.
• В проде — мониторь метрики throttling и включай алерты.
Контейнер, который выглядит занятым, но почти не потребляет CPU — это кандидат номер один на то, чтобы его освободить от удушающих лимитов.
Подпишись 👉@devopslib
BY Библиотека девопса | DevOps, SRE, Sysadmin
Share with your friend now:
tgoop.com/devopslib/59