Поиск по сайту:

CPUTool — Ограничивайте и контролируйте загрузку ЦП любым процессом в Linux


Одной из критических областей мониторинга производительности Linux должно быть использование ЦП и загрузка системы. Существует несколько инструментов мониторинга производительности Linux, позволяющих следить за тем, как обстоят дела в системе.

Некоторые из этих инструментов просто выводят состояние/статистику системы, в то время как некоторые другие предоставляют средства управления производительностью системы. Один из таких инструментов называется CPUTool.

CPUTool — это простой, но мощный инструмент командной строки, позволяющий ограничивать и контролировать использование ЦП любым процессом до заданного предела, а также позволяет прерывать выполнение процесса, если загрузка системы превышает определенный порог.

Как работает CPUTool?

Чтобы ограничить использование ЦП, cputool отправляет процессам сигналы SIGSTOP и SIGCONT, что определяется загрузкой системы. Он использует псевдофайловую систему /proc для чтения PID и показателей использования ЦП.

Его можно использовать для ограничения использования ЦП или загрузки системы, на которую влияет один процесс или группа процессов, до заданного предела и/или приостановки процессов, если загрузка системы превышает пороговое значение.

Рекомендуется к прочтению: Понимание средних значений нагрузки Linux и мониторинг производительности Linux

Установите CPUTool, чтобы ограничить использование ЦП и среднюю нагрузку

CPUTool доступен для установки только в Debian/Ubuntu и его производных из системных репозиториев по умолчанию с использованием инструмента управления пакетами.

sudo apt install cputool

Ограничение использования процессора процессом с помощью CUPTool

Теперь давайте посмотрим, как на самом деле работает cputool. Чтобы продемонстрировать все это, мы запустим команду dd, которая должна привести к высокому проценту загрузки ЦП в фоновом режиме и отобразить его PID.

dd if=/dev/zero of=/dev/null &

Для мониторинга использования ЦП мы можем использовать инструменты Top или Glies, которые позволяют нам просматривать в режиме реального времени регулярно обновляемое состояние запущенных системных процессов Linux:

top

Из приведенного выше вывода мы видим, что команда dd использует самый высокий процент процессорного времени 99,7%). Теперь мы можем ограничить это с помощью cputool, как показано ниже.

Флаг --cpu-limit или -c используется для установки процента использования для процесса или группы процессов, а -p — для указания ПИД. Следующая команда ограничит использование команды dd (PID 8275) 50% одного ядра ЦП:

cputool --cpu-limit 50 -p 8275 

После запуска cputool мы можем еще раз проверить использование нового ЦП для процесса (PID 8275). Теперь загрузка ЦП процессом dd должна находиться в диапазоне (49,0%–52,0%).

top

Чтобы еще больше ограничить загрузку ЦП dd до 20%, мы можем запустить cputool во второй раз:

cputool --cpu-limit 20 -p 8275 

Затем сразу же проверьте, используя такие инструменты, как top или glooks, подобные этому (загрузка ЦП для dd теперь должна находиться в диапазоне 19,0%-22,0% или немного выше):

top

Обратите внимание, что оболочка не ожидает ввода данных пользователем во время работы cputool; поэтому становится невосприимчивым. Чтобы уничтожить его (это прекратит операцию ограничения использования ЦП), нажмите Ctrl + C.

Важно отметить, что чтобы указать группу процессов (одна программа с несколькими запущенными экземплярами, каждый с отдельным PID), например веб-сервер HTTP:

pidof apache2
9592 3643 3642 3641 3640 3638 3637 1780

Используйте флаг -P следующим образом:

cputool --cpu-limit 20 -P 1780

Ограничение нагрузки на систему с помощью CUPTool

Параметр -l используется для указания максимальной нагрузки, которую может выдержать система, чтобы процесс или группа процессов продолжали работать. Мы можем использовать дробное значение (например, 2,5).

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

cputool --load-limit 3.5 --rsync -av /home/tecmint /backup/`date +%Y-%m-%d`/

Для получения дополнительной информации и использования посетите справочную страницу CPUTool:

man cputool

Ознакомьтесь со следующими полезными руководствами для поиска информации о процессоре и мониторинга производительности процессора:

  1. 9 полезных команд для получения информации о процессоре в Linux
  2. Cpustat — отслеживает загрузку процессора путем запуска процессов в Linux.
  3. CoreFreq — мощный инструмент мониторинга процессора для систем Linux
  4. Найдите наиболее запущенные процессы по максимальному использованию памяти и процессора в Linux

В заключение, CPUTool действительно полезен для управления производительностью Linux. Поделитесь своими мыслями об этой статье через форму обратной связи ниже.