Могу ли я ограничить использование процессора одним приложением?
Есть ли способ остановить ClamScan, съедая мой серверный процессор?
5 ответов
Так же, как альтернатива cpulimit:
Вы можете запустить clamscan с помощью команды nice, например:
nice -n 19 clamscan
,
Увидеть man nice
для деталей.
Это НЕ ограничивает ЦП, но снижает приоритет процесса.
Также есть renice
изменить приоритет запущенных процессов.
Установить cpulimit
sudo apt-get install cpulimit
Он предоставляет различные методы ограничения использования процессором процессора. foo
20%
По имени процесса:
sudo cpulimit -e foo -l 20
,По абсолютному пути:
sudo cpulimit -P /usr/bin/foo -l 20
По его PID:
- Найдите PID процесса:
pidof foo
, (скажем, это выводит 1881) sudo cpulimit -p 1881 -l 20
- Найдите PID процесса:
Если вы используете clamd с systemd, вы можете использовать CPUQuota
вариант.
редактировать /lib/systemd/system/clamav-daemon.service
включить эту строку в [Service]
раздел:
CPUQuota=20%
Затем перезапустите сервис
sudo systemctl daemon-reload
sudo systemctl reload-or-restart clamav-daemon
Это должен был быть комментарий к ответу Клаузи (который, на мой взгляд, является наиболее "правильным" с точки зрения системного администрирования), но он превратился в нечто слишком большое, чтобы поместиться в поле для комментариев.
У Clamscan есть определенный объем работы, поэтому ограничение его до определенной скорости означает, что это займет больше времени. Это будет держать процессор в конкуренции дольше.
Разрешить ему работать так быстро, как только может, значит, вы используете свой процессор в полной мере. Делать его очень "хорошим" означает, что он позволит другим процессам выполнять свою работу раньше, чем он сам. Это означает, что если есть много других занятых процессов, да, это займет много времени, чтобы выполнить свою собственную работу, но если там ничего нет, он просто разделит свою рабочую нагрузку.
Эта тема может быть полезна: HOWTO: установить максимальное потребление ресурсов процессора в процентах для любого процесса