Управление загрузкой процессов через cpulimit и ionice

Практические лайфхаки для разработчиков, DevOps и админов: Docker, Linux, Bash, Python, Golang, Ansible, логи и безопасность — только рабочие решения. Даем готовые команды, конфиги и приёмы диагностики, которые экономят часы и дни. Если нужно быстро настроить, отладить и обезопасить инфраструктуру — вы по адресу.

cpulimitionicelinux

ℹ️ Иногда нужно запустить ресурсоёмкий процесс на сервере, но при этом не ухудшить производительность других критически важных сервисов. Вместо того чтобы вручную отслеживать загрузку процессора или ждать завершения пиковых нагрузок, вы можете использовать сочетание утилит cpulimit и ionice для контроля использования CPU и диска.

📈 1. Ограничение использования CPU: cpulimit

Утилита cpulimit позволяет ограничить процент использования CPU для конкретного процесса. Это особенно полезно при запуске длительных задач, которые не должны мешать другим сервисам.

cpulimit -l 30 -- my-script.sh
  • -l 30 — ограничивает использование CPU до 30%.
  • -- my-script.sh — команда или скрипт, который нужно запустить.

ℹ️ Если процесс уже запущен, вы можете ограничить его по PID:

cpulimit -l 20 -p <PID>

🖥 2. Уменьшение нагрузки на диск: ionice

Когда процесс активно работает с диском (например, выполняет архивирование или копирование больших файлов), можно использовать ionice для задания приоритета ввода-вывода. Это снижает влияние процесса на общую производительность системы.

ionice -c 3 my-script.sh
  • -c 3 — самый низкий приоритет ввода-вывода («idle»), процесс будет использовать диск только тогда, когда другие задачи его не используют.

❕ Для уже запущенного процесса:

ionice -c 3 -p <PID>

🔥 3. Комбинированный подход

Вы можете одновременно ограничить и использование CPU, и доступ к диску:

ionice -c 3 cpulimit -l 25 -- my-script.sh

✳️ Такой подход идеально подходит для задач резервного копирования, сжатия логов, перекодировки видео и других операций, которые могут длиться часами и негативно влиять на работу критически важных приложений.

tags: #полезно #linux

🧭 @recura_tech

Иллюстрация: талисман Linux (Tux) на фоне иконок шестерёнки, графиков и окон — символы мониторинга нагрузки CPU и ввода-вывода на сервере.
Иллюстрация — Tux и графики, символизирующие мониторинг CPU и I/O в Linux.

Читайте так же