Limita l'utilizzo della CPU di un processo in Linux con lo strumento CPULimit
In un post precedente, abbiamo spiegato CPUTool per limitare e controllare l'utilizzo della CPU di qualsiasi processo in Linux. Consente all'amministratore di sistema di interrompere l'esecuzione di un processo (o di un gruppo di processi) se il carico della CPU/sistema supera una soglia definita. Qui impareremo come utilizzare uno strumento simile chiamato cpulimit.
Cpulimit viene utilizzato per limitare l'utilizzo della CPU di un processo allo stesso modo di CPUTool, tuttavia offre più opzioni di utilizzo rispetto alla sua controparte. Una differenza importante è che cpulimit non gestisce il carico del sistema a differenza di cputool.
Lettura consigliata: 9 comandi utili per ottenere informazioni sulla CPU su Linux
Installa CPULimit per limitare l'utilizzo della CPU di un processo in Linux
CPULimit è disponibile per l'installazione dai repository software predefiniti di Debian/Ubuntu e dei suoi derivati utilizzando uno strumento di gestione dei pacchetti.
sudo apt install cpulimit
In RHEL/CentOS e Fedora, devi prima abilitare il repository EPEL e poi installare cpulimit come mostrato.
# gnam installa epel-release
# gnam installa cpulimit
Limitazione dell'utilizzo della CPU del processo con CUPLimit
In questa sottosezione spiegheremo come funziona cpulimit. Per prima cosa, eseguiamo un comando (lo stesso dd comando che abbiamo visto mentre trattavamo cputool) che dovrebbe risultare in un'alta percentuale di CPU, in background (nota che il PID del processo viene stampato dopo aver eseguito il comando) .
dd if=/dev/zero of=/dev/null &
[1] 17918
Successivamente, possiamo utilizzare gli strumenti top o views che restituiscono lo stato effettivo e frequentemente aggiornato di un sistema Linux in esecuzione, per osservare l'utilizzo della CPU del comando sopra.
top
Osservando l'output sopra, possiamo vedere che il processo dd utilizza la percentuale più alta di tempo della CPU 100,0%.
Ma possiamo limitarlo usando cputlimit come segue. L'opzione --pid
o -p
viene utilizzata per specificare il PID e --limit
o -l
è utilizzato per impostare una percentuale di utilizzo per un processo.
Il comando seguente limiterà il comando dd (PID 17918) al 50% di utilizzo di un core della CPU.
sudo cpulimit --pid 17918 --limit 50
Process 17918 detected
Una volta eseguito cpulimit, possiamo visualizzare l'utilizzo corrente della CPU per il comando dd con top o sguardi. Dall'output, il valore varia da (51,5%-55,0% o leggermente oltre).
Possiamo limitare l'utilizzo della CPU per la seconda volta come segue, questa volta abbassando ulteriormente la percentuale come segue:
sudo cpulimit --pid 17918 --limit 20
Process 17918 detected
Come abbiamo fatto prima, possiamo dare un'occhiata in alto per visualizzare il nuovo utilizzo della CPU per il processo, che varierà dal 20% al 25,0% o leggermente oltre.
top
Nota: la shell diventa non interattiva: non prevede alcun input da parte dell'utente quando cpulimit è in esecuzione. Per terminarlo (che dovrebbe interrompere l'operazione di limitazione dell'utilizzo della CPU), premi [Ctrl + C]
.
Per eseguire cpulimit come processo in background, utilizza l'opzione -- background
o -b
, liberando il terminale.
sudo cpulimit --pid 17918 --limit 20 --background
Per specificare il numero di core della CPU presenti sul sistema, utilizzare il flag --cpu
o -c
(normalmente viene rilevato automaticamente).
sudo cpulimit --pid 17918 --limit 20 --cpu 4
Invece di limitare l’utilizzo della CPU di un processo, possiamo terminarlo con l’opzione --kill
o -k
. L'impostazione predefinita del segnale inviato al processo è SIGCONT, ma per inviare un segnale diverso, utilizzare il flag --signal
o -s
.
sudo cpulimit --pid 17918 --limit 20 --kill
Per uscire se non esiste un processo target adatto, o nel caso in cui muoia, includi -z
o --lazy
come questo.
sudo cpulimit --pid 17918 --limit 20 --kill --lazy
Per ulteriori informazioni e opzioni di utilizzo, visualizzare la pagina man cpulimit.
man cpulimit
Consulta le seguenti guide utili per trovare informazioni sulla CPU e monitorare le prestazioni della CPU/sistema.
- Trova i principali processi in esecuzione in base al maggiore utilizzo di memoria e CPU in Linux
- Cpustat: monitora l'utilizzo della CPU eseguendo processi in Linux
- CoreFreq: un potente strumento di monitoraggio della CPU per sistemi Linux
- Trova i principali processi in esecuzione in base al maggiore utilizzo di memoria e CPU in Linux
- 20 strumenti da riga di comando per monitorare le prestazioni di Linux
- 13 Strumenti di monitoraggio delle prestazioni Linux – Parte 2
In confronto, dopo aver testato CPUTool e CPULimit, abbiamo notato che il primo offre una funzionalità di "limitazione dell'utilizzo della CPU del processo" più efficace e affidabile.
Questo dipende dall'intervallo percentuale di utilizzo della CPU osservato dopo aver eseguito entrambi gli strumenti su un determinato processo. Prova entrambi gli strumenti e aggiungi i tuoi pensieri a questo articolo utilizzando il modulo di feedback qui sotto.