Вы когда-нибудь сталкивались с ситуацией, когда вы открываете одно конкретное приложение (например, Firefox), и это останавливает работу всей системы? Если вы используете веб-сервер, последнее, что вы хотите видеть, - это когда приложение вылетает из строя всей системы и останавливает все веб-сайты.
Cpulimit - это приложение для Linux, которое может ограничивать использование ЦП процессом. Это полезно, если вы хотите запретить определенному приложению занимать слишком много ресурсов ЦП и тем самым вызывать сбой системы. Это также может быть полезно, когда вам нужно запустить несколько интенсивных программ одновременно.
Примечание: cpulimit должен работать для всех дистрибутивов Linux. В этом руководстве для иллюстрации мы будем использовать Ubuntu.
Монтаж
В Ubuntu вы можете установить cpulimit через Центр программного обеспечения Ubuntu, щелкните здесь, чтобы установить, или введите следующую команду в терминале:
sudo apt- получить установку cpulimit
Применение
Чтобы ограничить процесс, используйте команду
sudo cpulimit -p PID -l CPU%
PID - это идентификатор процесса запущенного приложения, а CPU% - это процент (0–100, только число) ресурсов ЦП, разрешенных для приложения. Вы можете получить PID из Система -> Администрирование -> Системный монитор.
На скриншоте выше вы можете видеть, что приложение Swiftfox (вариант Firefox) занимает 68% ресурсов ЦП до того, как будет установлен предел ЦП. Посмотрим, что произойдет, если мы ограничим использование ЦП до 20%.
% CPU мгновенно упал ниже 20% и никогда больше не превышал отметку в 20%.
Расширение cpulimit - автоматизация всего процесса
Cpulimit полезен, когда вы сталкиваетесь с приложением, которое занимает много ресурсов ЦП или вам необходимо выполнить пакетное задание. Кроме того, вы также можете настроить его для мониторинга системы на предмет любых некорректных приложений. Это особенно полезно при настройке сервера.
abcuser с форума Ubuntu разработал отличный сценарий, который автоматизирует мониторинг вашей системы и ограничивает любой процесс, превышающий установленный предел ЦП. Скрипт также позволяет вам установить черный список / белый список для определенных приложений.
Прежде чем мы начнем, убедитесь, что у вас установлены cpulimit и gawk.
sudoapt-get install cpulimit gawk
Скачайте скрипты здесь. Распакуйте tar-файл в вашу домашнюю папку. У вас должно быть два файла в папке cpulimit: cpulimit_daemon.sh и cpulimit.
Откройте файл cpulimit_daemon.sh в текстовом редакторе (gEdit) и измените следующее:
CPU_LIMIT: это максимальные ресурсы ЦП, доступные каждому приложению. Значение по умолчанию - 20%.
DAEMON_INTERVAL: это интервал, в течение которого сценарий проверяет систему. По умолчанию установлено 3 секунды.
BLACK_PROCESS_LIST: содержит список элементов, которые необходимо отслеживать. Вы можете использовать "|" разделитель для включения нескольких процессов. Например, " mysql | firefox | gedit
".
WHITE_PROCESSES_LIST: содержит список элементов, мониторинг которых вы НЕ ХОТИТЕ. Вы можете использовать "|" разделитель для включения нескольких процессов. Например, " mysql | firefox | gedit
".
Примечание: Одна или обе переменные BLACK_PROCESSES_LIST и WHITE_PROCESSES_LIST должны быть пустыми. Нельзя одновременно создавать черный и белый списки.
Настройка
Скопируйте файл cpulimit_daemon.sh в папку / usr / bin /
sudocp ~/cpulimit/cpulimit_daemon.sh /usr/binsudochmod700/usr/bin/cpulimit_daemon.sh
Скопируйте файл cpulimit в /etc/init.d/folder, установите необходимое разрешение и запустите его во время statup.
sudocp ~/cpulimit/cpulimit /etc/init.d/sudochown root:root /etc/init.d/cpulimitsudochmod +x /etc/init.d/cpulimitsudo update-rc.d cpulimit defaults
Теперь перезагрузите вашу систему. Демон cpulimit должен запуститься автоматически.
Вы можете открыть терминал и ввести:
sudo service cpulimit status
чтобы проверить, запущен ли демон cpulimit. Если он не запущен, запустите его командой
sudo service cpulimit start
В качестве альтернативы остановите это с помощью:
sudo service cpulimit stop
Удаление
Для удаления вам нужно сделать следующее:
1. Остановите демон cpulimit
sudo service cpulimit stop # Остановить демон cpulimit и все процессы cpulimit
2. Удалите демона из процедуры загрузки.
sudo update-rc.d -f cpulimit remove # Remove symbolic links
3. Удалить процедуру загрузки.
sudorm/etc/init.d/cpulimit # Delete cpulimit boot-up script
4. Удалите демон cpulimit.
sudorm/usr/bin/cpulimit_daemon.sh # Delete cpulimit daemon script
5. Удалите программу cpulimit.
sudo apt- получить удалить cpulimit
При желании удалите программу gawk
sudoapt-get removegawk
Дополнительные сведения см. На форуме Ubuntu.
Кредит кода: abcuser с форума Ubuntu
8 комментариев
Комментарии закрыты.
Это отличная утилита. Я давно искал что-то подобное. И скрипт для создания мониторинга демона - это вишенка на торте. Я распространяю эту статью как можно больше
Я рада, что тебе понравилось. За сценарий следует отдать должное abcuser с форума Ubuntu.
С технической точки зрения, / usr / local / bin - лучшее место для сценария - / usr - это место, куда большинство дистрибутивов будут устанавливать пакеты, но / usr / local зарезервирован для вещей, установленных администратором (пакеты настраиваемой сборки, сценарии администратора и т. Д. ).
Спасибо за ваш совет.
Это действительно отличный урок, спасибо!
Мне нужно то же самое для моего сервера Windows 2008. У вас есть для этого аналогичные инструкции?
Переключиться на Linux сервер…=))
См. Также: "and" (демон auto nice) и "cpufreqd".