Могу ли я ограничить использование процессора одним приложением?

Есть ли способ остановить 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:

    1. Найдите PID процесса: pidof foo, (скажем, это выводит 1881)
    2. sudo cpulimit -p 1881 -l 20

Если вы используете clamd с systemd, вы можете использовать CPUQuota вариант.

редактировать /lib/systemd/system/clamav-daemon.service включить эту строку в [Service] раздел:

CPUQuota=20%

Затем перезапустите сервис

sudo systemctl daemon-reload
sudo systemctl reload-or-restart clamav-daemon

Это должен был быть комментарий к ответу Клаузи (который, на мой взгляд, является наиболее "правильным" с точки зрения системного администрирования), но он превратился в нечто слишком большое, чтобы поместиться в поле для комментариев.

  • У Clamscan есть определенный объем работы, поэтому ограничение его до определенной скорости означает, что это займет больше времени. Это будет держать процессор в конкуренции дольше.

  • Разрешить ему работать так быстро, как только может, значит, вы используете свой процессор в полной мере. Делать его очень "хорошим" означает, что он позволит другим процессам выполнять свою работу раньше, чем он сам. Это означает, что если есть много других занятых процессов, да, это займет много времени, чтобы выполнить свою собственную работу, но если там ничего нет, он просто разделит свою рабочую нагрузку.

Другие вопросы по тегам