Веб-версияОткрыть в Telegram

Пост⚖️ Requests vs Limits: Почему твой под тормозит на пустой ноде?

30 января 2026
Б
Библиотека девопса | DevOps, SRE, Sysadmin
⚖️ Requests vs Limits: Почему твой под тормозит на пустой ноде? Всем привет! 👋 Сегодня о наболевшем - о ресурсах в Kubernetes. Я часто вижу манифесты, где секция resources либо отсутствует вовсе ("пусть берет сколько надо"), либо настроена "на глаз". А потом начинаются вопросы: "Почему приложение тупит, хотя CPU загружен на 5%?" или "Почему мой под постоянно убивает OOMKilled?" Давайте разберем главную ловушку новичка. 1. Requests (Запросы) - Это про "Обещание" 🤝 requests - это то, что Kubernetes гарантирует вашему поду. Шедулер смотрит на реквесты и ищет ноду, где есть свободное место. Если вы не указали реквесты - K8s считает, что поду ничего не нужно, и может запихнуть его на перегруженную ноду, где он будет страдать. 2. Limits (Лимиты) - это про "Наказание" 👮‍♂️ limits - это верхняя планка. И тут поведение CPU и RAM кардинально отличается. 💀 RAM Limit (Жесткая смерть) Память - ресурс не сжимаемый. Если приложение съело больше лимита - приходит OOMKiller (Out Of Memory Killer) и пристреливает процесс. Под рестартится. • Ошибка: Ставить лимит памяти впритык к потреблению Java-хипа. Дайте запас на оверхед! 🐌 CPU Limit (Тормоза / Троттлинг) CPU - ресурс сжимаемый. Если приложение хочет больше лимита, его не убивают. Его троттлят. Шедулер просто перестает давать процессу процессорное время на определенные кванты времени. • Результат: Ваше приложение начинает отвечать не за 50мс, а за 500мс. Ошибок нет, логов нет, но все тормозит. 🔥 QoS Classes: Битва за приоритет Kubernetes делит все поды на 3 касты (Quality of Service): 1. Guaranteed (Элита) 👑 • requests = limits (и по CPU, и по RAM). • Эти поды убиваются последними, если на ноде кончается место. Идеально для Баз Данных и критичного прода. 2. Burstable (Средний класс) 💼 • requests < limits. • Они могут "бурстить" (потреблять больше реквеста), если есть свободные ресурсы. Но если на ноде начнется давка, их начнут выселять первыми. Подходит для большинства веб-сервисов. 3. BestEffort (Бомжи) 🗑 • Ресурсы не указаны вообще. • Живут "на птичьих правах". При любой нехватке ресурсов на ноде эти поды улетают в небытие первыми. Используйте только для неважных тестовых джобов. 💡Золотое правило настройки 1. Memory: Всегда ставьте Requests == Limits. • Почему? Чтобы K8s гарантировал вам эту память и не пытался выселить под при нехватке ресурсов на ноде. Это дает класс Guaranteed (по памяти). 2. CPU: • Requests: Обязательно ставьте честные значения (сколько реально надо при средней нагрузке). • Limits: Осторожно! Некоторые инженеры вообще не ставят CPU лимиты (или ставят их очень высокими), чтобы избежать троттлинга при резких всплесках трафика. Если нода свободна - пусть приложение забирает всё! 📝 Пример "Надежного" конфига: resources: requests: memory: "512Mi" cpu: "250m" # 0.25 ядра limits: memory: "512Mi" # Равно реквесту! # cpu: "1000m" # Можно не ставить или ставить с запасом Не бойтесь давать памяти с запасом, но бойтесь зажать CPU в тиски. #k8s #performance #cpu #ram #bestpractices #troubleshooting Подпишись 👉@devopslib
19 · 922 ·

Рядом в ленте

ББиблиотека девопса | DevOps, SRE, Sysadmin🚑 HEALTHCHECK: Спасательный круг или выстрел в ногу? Продолжаем тему стабильности. Сегодня про Healthchecks (в Docker) и Probes (в K8s). Казалось бы, что сложноББиблиотека девопса | DevOps, SRE, Sysadmin🛑 Не убивай меня сразу! Настраиваем Graceful Shutdown Коллеги, бывало такое? Вы делаете kubectl rollout restart, Kubernetes обещает бесшовное обновление, но в м
это сообщение
ББиблиотека девопса | DevOps, SRE, Sysadmin🥊 Helm vs Kustomize: Вечная битва или идеальный симбиоз? Салют! 👋 Сегодня затронем тему, из-за которой в курилках девопсов доходит до драки. Как управлять манифББиблиотека девопса | DevOps, SRE, Sysadmin💡 Когда docker system prune спасает твой диск... но не всё так просто Все мы знаем, что Docker любит кушать диск. Особенно, если часто собирать образы, поднимат
ББиблиотека девопса | DevOps, SRE, SysadminБиблиотека девопса | DevOps, SRE, Sysadmin@devopslib · канал · Технологии
1 267подписчиков259средний охват поста
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем