Posso limitare l'utilizzo della CPU di una singola applicazione?


Risposte:


16

Proprio come un'alternativa a cpulimit:

Puoi avviare Clamscan con il comando nice, ad es

nice -n 19 clamscan.

Vedi man niceper i dettagli.

Esso non limita la CPU, ma lo fa abbassare la priorità del processo.

Inoltre è renicenecessario modificare la priorità dei processi in esecuzione.


2
Sembra che funzioni ancora mangiando un sacco di CPU ...
Pitto

4
Finché nessun altro processo richiede cputime, clamscan ne ottiene molto. Ma non appena un altro processo (che ha una priorità più alta) ha bisogno di cputime, Clamscan non ha possibilità. cpulimit limita il cputime assoluto e Nice limita il cputime relativo.
Clausi,

2
+1. niceing è il modo tradizionale di andare, e per una buona ragione.
loevborg,

Esistono strumenti per definire un valore di default predefinito per l'esecuzione di particolari applicazioni? Preferibilmente uno strumento che ti consente di confrontare tutti i preset uno accanto all'altro.
Jonny Asmar,

19

Installa cpulimit

sudo apt-get install cpulimit

Fornisce diversi metodi per limitare l'utilizzo della CPU di un processo fooper dire, 20%

  • Con il suo processo-nome: sudo cpulimit -e foo -l 20.

  • Con il suo nome di percorso assoluto: sudo cpulimit -P /usr/bin/foo -l 20

  • Con il suo PID:

    1. Trovare il PID del processo: pidof foo. (diciamo, produce 1881)
    2. sudo cpulimit -p 1881 -l 20

Nessun processo di destinazione trovato ... Forse è perché ho uno script per eseguire clamscan? lo faccio: sudo cpulimit -e /etc/cron.hourly/virusscan -l 15
Pitto

@Pitto: hai inserito un comando sbagliato, /etc/cron.hourly/virusscannon è un processo. Se devi limitare clamscan, esegui sudo cpulimit -e clamscan -l 15.
Sid,

Oh! Giusto! Quindi dovrei avviare cpulimit all'avvio in rc.local, giusto?
Pitto,

2
sudonon è richiesto il processo non è un processo di sistema. Proprio come una nota
Anwar,

Questa sarebbe una soluzione davvero accurata se utilizzata in modo programmatico! Supporta ricerche basate su pattern?
Jonny Asmar,

4

Questo sarebbe stato un commento sulla risposta di Clausi (che credo sia il più "corretto" dal punto di vista dell'amministrazione del sistema, secondo me) ma è sbocciato in qualcosa di troppo grande per rientrare nella casella dei commenti.

  • Clamscan ha una quantità fissa di lavoro per farlo limitandolo a una certa velocità significa che ci vorrà solo più tempo. Terrà la CPU in conflitto più a lungo.

  • Consentire il funzionamento più veloce possibile significa utilizzare la CPU al massimo. Renderlo molto "carino" significa che permetterà ad altri processi di svolgere il proprio lavoro prima del proprio. Ciò significa che se ci sono molti altri processi occupati, sì, ci vorrà molto tempo per fare il proprio lavoro, ma se non c'è nulla lì, sarà solo a pezzi attraverso il suo carico di lavoro.


3

Se stai eseguendo clamd con systemd, puoi usare l' CPUQuotaopzione.

Modifica /lib/systemd/system/clamav-daemon.serviceper includere questa riga nella [Service]sezione:

CPUQuota=20%

Quindi riavviare il servizio

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.