Ricerca nel sito web

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.

  1. Trova i principali processi in esecuzione in base al maggiore utilizzo di memoria e CPU in Linux
  2. Cpustat: monitora l'utilizzo della CPU eseguendo processi in Linux
  3. CoreFreq: un potente strumento di monitoraggio della CPU per sistemi Linux
  4. Trova i principali processi in esecuzione in base al maggiore utilizzo di memoria e CPU in Linux
  5. 20 strumenti da riga di comando per monitorare le prestazioni di Linux
  6. 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.