Чи можна обмежити використання центральним процесором однієї програми?


Відповіді:


16

Як альтернатива cpulimit:

Ви можете запустити clamscan за допомогою команди nice, наприклад

nice -n 19 clamscan.

Детальніше man niceдивіться.

Він НЕ обмежує процесор, але при цьому знижує пріоритетність процесу.

Також reniceпотрібно змінити пріоритет запущених процесів.


2
Схоже, він все ще працює, їсть багато процесора ...
Пітто,

4
Поки жоден інший процес не вимагає cputime, clamscan отримує його багато. Але як тільки інший процес (який має більш високий пріоритет) потребує cputime, clamscan не має шансів. cpulimit обмежує абсолютний cputime, а nice обмежує відносний cputime.
Клаусі

2
+1. niceING - це традиційний шлях, і це з поважної причини.
loevborg

Чи є інструменти для визначення хорошого значення за замовчуванням для конкретних програм, з якими слід запускати? Переважно інструмент, який дозволяє порівнювати всі ваші попередньо встановлені налаштування.
Джоні Асмар

19

Встановити 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

Жодного цільового процесу не знайдено ... Може, це тому, що у мене є сценарій для запуску молюска? я роблю: sudo cpulimit -e /etc/cron.hourly/virusscan -l 15
Пітто

@Pitto: Ви ввели неправильну команду, /etc/cron.hourly/virusscanце не процес. Якщо вам потрібно обмежитися clamscan, запустіть sudo cpulimit -e clamscan -l 15.
Сід

Ой! Правильно! Тому я повинен почати cpulimit при запуску в rc.local, правда?
Пітто

2
sudoне потрібно, процес не є системним процесом. Як і замітка
Анвар

Це було б дійсно акуратним рішенням, якщо його використовувати програмно! Чи підтримує він пошук на основі шаблонів?
Джоні Асмар

4

Це було б коментарем до відповіді Клаусі (на мою думку, я вважаю, це найбільш "правильне" з точки зору адміністрації системи), але воно зацвіло в щось надто велике, щоб вміститись у поле коментарів.

  • Clamscan має фіксовану кількість робіт, щоб зробити це обмеженням певної швидкості, це означає, що це просто займе більше часу. Це буде тримати CPU в суперечці довше.

  • Дозвольте йому працювати так швидко, як це може означати, що ви максимально використовуєте свій процесор. Зробити це дуже "приємно" означає, що це дозволить іншим процесам робити свою роботу раніше, ніж власноруч. Це означає, що якщо багато інших зайнятих процесів, так, це займе багато часу, щоб зробити свою власну роботу, але якщо там нічого немає, він просто скине його робоче навантаження.


3

Якщо ви запускаєте clamd з systemd, ви можете використовувати CPUQuota опцію.

Змініть, /lib/systemd/system/clamav-daemon.serviceщоб включити цей рядок у [Service]розділ:

CPUQuota=20%

Потім перезапустіть службу

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.