TGViewer
KazDevOps KazDevOps @devopskaz · 6.87K subscribers
Post #1447 1.65K
🔥 CPU Limits в Kubernetes: Как избежать троттлинга и ускорить приложения

Статья по докладу о CPU Limits в Kubernetes объясняет их влияние на производительность контейнеров. Автор разбирает концепцию CPU Requests и Limits, их связь с cgroups v2 и даёт рекомендации по использованию.

Самое главное ниже 👇

CPU Requests задают минимально гарантированное процессорное время для контейнера, а CPU Limits — максимальное.

Limits ограничивают использование процессора в "окне" 100 мс (например, при лимите 0.4 ядра контейнер получит 40 мс из 100 мс). Это реализуется через cgroups v2 в Linux, которые управляют распределением ресурсов.


Проблемы с CPU Limits:

Для приложений, чувствительных к задержкам, throttling критичен: могут не сработать liveness probes, пропуститься heartbeat-события, увеличиться задержка ответа.

Даже при низкой загрузке процессора (например, 50%) контейнер может троттлиться из-за многопоточности или ошибок в ядре Linux.

Как работает throttling:

Если задаче нужно 200 мс процессорного времени, но у вас лимит 0.4 (40 мс на 100 мс), то 160 мс придётся ждать новых "окон". Итог: задача займёт 440 мс вместо 200 мс, так как 60 мс в каждом окне — это простой. Throttling (замедление) возникает, даже если у узла есть свободные ресурсы.

Когда использовать CPU Limits:

⚪️ Нужно: в редких случаях, например, для пакетных задач (batch jobs), где задержки некритичны, или если есть баг в приложении, из-за которого оно потребляет слишком много CPU.
⚪️ Не нужно: для большинства приложений, особенно чувствительных к задержкам (веб-серверы, базы данных). Лучше полагаться на CPU Requests, чтобы гарантировать минимум ресурсов без искусственного замедления.

Рекомендации:

➖ Устанавливайте только CPU Requests, чтобы гарантировать минимум ресурсов без троттлинга.
➖ Если Limits всё же нужны, делайте их значительно выше Requests (например, в 2–3 раза), чтобы учесть пиковые нагрузки.
➖ Регулярно мониторьте метрики и корректируйте настройки, особенно при росте нагрузки.
➖ Проверяйте логи приложений на увеличение времени обработки запросов.
➖ Обновляйте ядро Linux до версий без багов CFS (Completely Fair Scheduler), которые могут вызывать лишний троттлинг.

@DevOpsKaz 😛
  • 👍 8
  • ⚡ 4
  • 🔥 4
More from @devopskaz
  1. Oct 2, 2026🔥 Участвуйте в AWS Innovation Day 2026 — 22 октября, бесплатно Конференция об искусственн…
  2. Oct 2, 2026⚡️ State of AI Engineering 2026 Отчет Datadog «State of AI Engineering 2026» основан на ан…
  3. Oct 1, 2026🔥 Спикер №12 DevOpsDays Almaty'26 — Душеин Александр, архитектор облачных решений Yandex…
  4. Oct 1, 2026Post #2215
  5. Sep 30, 2026🔥 Перестаньте будить дежурных из-за CPU > 80% Каждый алерт, требующий немедленной реакции…
  6. Sep 29, 2026🔥 Спикер №11 DevOpsDays Almaty'26 — Нэлия Логинова, Head of Platform Technologies, Netcra…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →