Есть ли способ остановить ClamScan, съедая мой серверный процессор?
Так же, как альтернатива 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:
pidof foo
, (скажем, он выводит 1881) sudo cpulimit -p 1881 -l 20
Это будет комментарий к ответу Клаузи (который, на мой взгляд, является наиболее «правильным» с точки зрения системного администрирования), но он превратился в нечто слишком большое, чтобы поместиться в поле для комментариев.
Clamscan имеет фиксированный объем работы, поэтому ограничение его до определенной скорости означает, что это займет больше времени. Он будет дольше удерживать процессор в конфликте.
Разрешить ему работать настолько быстро, насколько это возможно, это означает, что вы используете свой процессор в полной мере. Делать его очень «хорошим» означает, что он позволит другим процессам выполнять свою работу раньше, чем он сам. Это означает, что если есть много других занятых процессов, да, это займет много времени, чтобы выполнить свою собственную работу, но если там ничего нет, он просто разделит свою рабочую нагрузку.
Если вы используете clamd с systemd, вы можете использовать опцию CPUQuota
.
Измените /lib/systemd/system/clamav-daemon.service
, чтобы включить эту строку в раздел [Service]
:
CPUQuota=20%
Затем перезапустите службу
sudo systemctl daemon-reload
sudo systemctl reload-or-restart clamav-daemon
Эта тема может быть полезна: HOWTO: установить максимальное потребление ресурсов процессора в процентах для любого процесса