web analytics

[Guida] Come utilizzare cpulimit per allegerire la CPU

cpu process sysadmin management

Nella guida di oggi vi mostro come utilizzare cpulimit per limitare l’utilizzo della cpu da parte di un certo processo. Questo tool è particolarmente utile con processi di lunga durata e che consumano moltaCPU. Un esempio tipico è la conversione o post-produzione di video molto pesanti. Con questo tool un sysadmin può liberare il processore per altre attività e, al contempo, ridurre il consumo energetico e la produzione di calore.

Cpulimit: un tool potente ma facile da configurare

Esistono vari modi con cui un sysadmin può gestire i carichi della CPU su GNU/Linux. I comandi storici per eccellenza, ad esempio, sono cgroups e nice. Qui su LFFL, a tal proposito, vi ho parlato di Ananicy, tool utile a creare profili personalizzati, ed assegnare così le priorità desiderate alle app preferite. Il comando nice, tuttavia, non permette di limitare la percentuale di cicli CPU per processo. Per farlo potete utilizzare cpulimit.

cpulimit help sysadmin
Cpulimit è disponibile di default nei repository di Ubuntu e Fedora Linux. Per installarlo, quindi, basta ricorrere ad apt o, nel caso di Fedora, lanciare la seguente direttiva nel terminale:

sudo dnf install cpulimit

Il tool è molto semplice da utilizzare, tuttavia non ha le man pages. Per accedere ad una lista di opzioni disponibili, quindi, potete visionare l’opzione –help.

Come si utilizza

Per capire l’utilizzo del comando cpulimit, provate ad utilizzare il seguente script Python, prima senza limiti e poi con un limite del 50%. Il programma calcola il valore del 42° numero di Fibonacci, e viene eseguito come processo figlio del comando time in entrambi i casi, per mostrare il tempo totale necessario per calcolare la risposta.

/bin/time -f '(computed in %e seconds)' /bin/python -c 'f = lambda n: n if n<2 else f(n-1)+f(n-2); print(f(42), end=" ")'

/bin/cpulimit -i -l 50 /bin/time -f '(computed in %e seconds)' /bin/python -c 'f = lambda n: n if n<2 else f(n-1)+f(n-2); print(f(42), end=" ")'

La prima versione del comando è scritta in modo tale da poter utilizzare al massimo una CPU. La seconda, invece, utilizza cpulimit con l’opzione -l, impostando la percentuale massima di utilizzo della CPU al 50%. Questo parametro va settato in maniera tale da essere compreso in un intervallo il cui estremo destro è pari al numero di core moltiplicato per 100. Ad esempio se avete 4 core potete impostare 400 come limite massimo teorico.

cpulimit sysadmin

Se volete limitare un’applicazione grafica avviata tramite un’icona sul desktop, invece, copiate il file .desktop dell’applicazione nella directory ~/.local/share/applications e modificate la proprietà Exec aggiungendo le impostazioni necessarie per cpulimit.

sharing-caring-1Seguiteci sul nostro canale Telegram, sulla nostra pagina Facebook e su Google News. Nel campo qui sotto è possibile commentare e creare spunti di discussione inerenti le tematiche trattate sul blog.

Altre storie
rsync backup open source
[Guida] Backup del sistema o di directory specifiche con rsync