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

Как ограничить использование ЦП с помощью CPULimit в Ubuntu Linux


На этой странице

  1. 1 предварительное примечание
  2. 2 Установка CPULimit
  3. 3 Ограничение использования ЦП 
  4. 4 ссылки

Команда cpulimit предназначена для ограничения использования ЦП определенным процессом в Linux, гарантируя, что оно не превысит определенный порог. Это может быть особенно полезно для управления системными ресурсами и предотвращения монополизации процессорного времени одним процессом, что может привести к снижению общей производительности системы. Указав желаемый лимит использования ЦП в процентах, пользователи могут применять ограничения к запущенным процессам или инициировать новые с контролируемым потреблением ЦП. Инструмент отправляет сигналы SIGSTOP и SIGCONT целевому процессу, приостанавливая и возобновляя их для поддержания установленного лимита использования.

1 предварительное примечание

Это руководство было протестировано в Ubuntu 24.04, но оно также работает и в более старых версиях Ubuntu.

2 Установка CPULimit

Во-первых, нам нужно установить cpulimit следующим образом:

sudo apt update
sudo apt install cpulimit

3 Ограничение использования ЦП 

Теперь проверим утилиту на предмет ограничения использования процессора. Для этого мы сначала проверим использование ЦП без CPUlimit, а затем реализуем CPUlimit для его оценки. Давайте проясним это на примере.

  1. Вот пример того, как использовать ваш ЦП с приложением на одноядерном ЦП:
dd if=/dev/zero of=/dev/null &

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

top
top - 11:24:18 up 49 min,  1 user,  load average: 0.94, 1.02, 1.79
Tasks: 249 total,   2 running, 247 sleeping,   0 stopped,   0 zombie
%Cpu(s): 13.4 us, 11.6 sy,  0.0 ni, 74.9 id,  0.0 wa,  0.1 hi,  0.0 si,  0.0 st
KiB Mem:   1010540 total,   271652 used,   738888 free,    21760 buffers
KiB Swap:  1048572 total,        0 used,  1048572 free.   158204 cached Mem
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                    
 1850 root      20   0    7224    616    520 R 100.0  0.1   1:20.33 dd                         
 1851 root      20   0   24952   1756   1180 R   0.3  0.2   0:00.03 top                        
    1 root      20   0   33480   2776   1456 S   0.0  0.3   0:05.31 init                       
    2 root      20   0       0      0      0 S   0.0  0.0   0:00.01 kthreadd        

Как мы видим, загрузка процессора достигла 100%. Теперь мы будем использовать cpulimit для ограничения использования процессора. Мы можем вывести этот процесс на передний план с помощью команды fg и отменить его с помощью CTRL+C.

fg

Теперь мы можем проверить cpulimit, чтобы увидеть, делает ли он то, что должен. Давайте проверим это следующим образом:

cpulimit -l 30 dd if=/dev/zero of=/dev/null &

Теперь мы проверим загрузку процессора с помощью команды top:

top

Теперь вы можете видеть, что загрузка ЦП снизилась со 100% до 33,8%, почти на 30%. Вот мы и успешно проверили утилиту cpulimit, которая позволяет ограничить использование потребления процессора в одноядерном дистрибутиве Ubuntu.

  1. Вот пример того, как использовать ваш ЦП с приложением на многоядерном ЦП:

Чтобы проверить ядро процессора, используйте команду:

nproc   

 В моем случае количество ядер ЦП было 4.
Теперь мы продолжим проверять загрузку ЦП без ограничения процессора во всех 4 ядрах приложения следующим образом:

for j in `seq 1 4`; do dd if=/dev/zero of=/dev/null & done

Он выполнит команду, используя все ядра, и выдаст результат:


Теперь проверьте загрузку ЦП с помощью команды top:

top


Команда dd потребляет почти 100% ресурсов ЦП всех ядер.  Далее проверим команду утилитой cpulimit. Для этого удалите предыдущие трассировки для команды dd следующим образом:

killall dd


Теперь используйте cpulimit с той же командой:

for j in `seq 1 4`; do cpulimit -l 20 dd if=/dev/zero of=/dev/null & done


Теперь проверьте загрузку ЦП с помощью утилиты cpulimit.

top


Как видно выше, загрузка ЦП ограничена от 100 %  до 20 % почти для многоядерных процессоров.

Поздравляем! Мы успешно протестировали cpulimit для ограничения использования ЦП в Ubuntu.

4 ссылки

  •     Убунту: http://www.ubuntu.com/
  •     cpulimit : https://github .com/opsengine/cpulimit

Статьи по данной тематике: