В следующей статье мы рассмотрим CPULimit. Это инструмент командной строки, который ограничивает использование ЦП процессом (выражается в процентах, а не в процессоре). Это будет полезно для управления пакетными заданиями, когда мы не хотим, чтобы процесс потреблял слишком много циклов ЦП.
С помощью этого инструмента мы не собираемся изменять значение или другие настройки приоритета, а изменять фактическое использование ЦП. Кроме того, он способен динамично и быстро адаптироваться к общей нагрузке системы. Контроль количества используемого ЦП осуществляется путем отправки Senales СЛЕДУЮЩАЯ ОСТАНОВКА y СЛЕДУЮЩИЙ POSIX процессам. Все дочерние процессы и потоки указанного процесса будут использовать один и тот же процент ЦП.
Установить CPULimit
CPULimit - это доступен в большинстве репозиториев по умолчанию для Unix-подобных дистрибутивов. Мы можем установить его, используя менеджеры пакетов по умолчанию в соответствующем дистрибутиве Gnu / Linux. В нашем примере мы увидим, как установить его на Debian, Ubuntu и Linux Mint. Нам останется только открыть терминал (Ctrl + Alt + T) и написать в нем следующую команду:
sudo apt-get install cpulimit
Кто хочет, может проконсультироваться с другими типами объектов в страница проекта на GitHub.
Использование CPULimit
После того, как инструмент установлен, пора посмотреть, как он работает. Для этого мы запустим программу, которая потребляет много ресурсов процессора. Следующие команды необходимо запускать от имени пользователя root.
Создание скрипта, потребляющего ресурсы ЦП
Сначала мы собираемся создайте файл под названием derrochecpu.sh. Я собираюсь использовать Редактор Vim, но пусть каждый использует то, что ему больше нравится. В терминале (Ctrl + Alt + T) нам нужно будет написать:
vim derrochecpu.sh
После открытия мы нажмем клавишу 'Esc' а потом 'i'. Теперь мы добавим следующие строки:
#!/bin/bash while :; do :; done;
Когда это сделано, пришло время сохранить и выйти. Для этого нажмем клавишу 'Esc'и мы напишем : Wq чтобы сохранить и закрыть файл. Этот короткий сценарий будет повторяться без перерыва, потребляя максимальную нагрузку на ЦП. Поэтому желательно протестировать его на виртуальной машине.
Теперь мы сделаем этот файл исполняемым. Для этого из того же терминала (Ctrl + Alt + T) выполним:
chmod +x derrochecpu.sh
Запуск скрипта
Теперь запустим процесс в фоновом режиме. Сделаем это с помощью команды:
./derrochecpu.sh &
Мы собираемся сохранить PID процесса. В данном случае 6472 - это PID запущенного процесса.
Проверка того, сколько CPU потребляет
Мы можем увидеть, сколько ЦП потребляет только что запущенный процесс, используя команда «верх» в том же терминале:
top
Как видно на скриншоте выше, процесс Wastecpu.sh использует более 96% ЦП. Поскольку он потребляет довольно много ресурсов ЦП, трудно выполнять другие задачи. После нескольких минут, система может вылететь или зависнуть. Здесь нам на помощь приходит CPULimt.
Ограничение использования ЦП по PID
Теперь давайте ограничим использование ЦП этим процессом с помощью инструмента CPULimit. Мы собираемся ограничить использование ЦП до 35% с помощью соответствующего PID (примерно). Для этого запустите:
cpulimit -l 35 -p 6472 &
- Опция "-л 35»Ограничивает процесс примерно до 35%.
- «-p 6472»Это PID derrochecpu.sh, который мы видели раньше.
Проверка эффекта CPULimit
Как только предыдущая команда была запущена, давайте еще раз проверим использование ЦП процессом. Для этого мы снова воспользуемся командой top:
top
Как вы можете видеть на изображении выше, загрузка ЦП в Wastfulcpu.sh упала до 35,6%, что очень близко к 35%. Теперь я у нас может быть больше ресурсов ЦП для запуска других процессов.
Ограничение использования ЦП по имени файла
Мы видели, как ограничить процесс с помощью PID. Также мы можем выполнить команду CPULimit, указав имя исполняемого файла программы.
Например, тот же пример выше:
cpulimit -l 30 ./derrochecpu.sh &
CPULimit может быть полезен при запуске процесса, который потребляет слишком много ресурсов ЦП. В следующий раз, когда мы заметим, что программа потребляет слишком много ресурсов ЦП, нам просто нужно будет найти PID процесса с помощью команды «топ«. Когда он у вас есть, вам просто нужно ограничить использование ЦП до минимального значения с помощью команды CPULimit, как описано в этой статье.
Удалить CPULimit
Удалить этот инструмент из нашей системы так же просто, как открыть терминал (Ctrl + Alt + T) и ввести в нем:
sudo apt remove cpulimit
Что описано в этой статье это просто пример. Очевидно, что никто в здравом уме не запустит сценарий, подобный описанному здесь, на своем собственном компьютере.
Привет
Он идеально подходит для старого компьютера с процессором amd64 x2, который, кажется, имеет проблемы с охлаждением, и когда процесс потребляет много процессора в течение нескольких минут, он нагревается до 100 ° C и отключается.
Таким образом, когда я вижу, что какой-то процесс (обычно некоторые веб-сайты или программы рендеринга видео) заставляет меня повышать температуру процессора, я использую cpulimit, чтобы отключить этот процесс.
спасибо