Come fare lo stress test della CPU su Linux
Il Gennaio 25, 2022 da adminCi sono molte ragioni per cui potreste voler fare lo stress test della CPU sul vostro sistema Linux. Potresti voler vedere come il tuo sistema operativo e l’hardware si comportano quando sei al massimo utilizzo della CPU, al fine di individuare bug del software o guasti dell’hardware. In alternativa, potreste voler generare molto calore velocemente per risolvere un problema legato alla temperatura della vostra macchina; massimizzare l’utilizzo della CPU lo farà. Qualunque sia la ragione, c’è un modo semplice e veloce per raggiungere l’obiettivo.
In questo tutorial imparerete:
- Come eseguire stress test sulla CPU utilizzando il test di stress sì
- Come eseguire stress test sulla CPU utilizzando il comando stress
- Come eseguire stress test sulla CPU utilizzando il comando s-tui
Requisiti software e convenzioni usate
Categoria | Requisiti, Conventions or Software Version Used |
---|---|
System | Distribution-independent |
Software | yes, getconf, seq, bash, stress, s-tui |
Other | No root privileges required for the yes stress test. L’accesso privilegiato al tuo sistema Linux come root o tramite il comando sudo potrebbe essere richiesto per installare altri pacchetti dello stress test. |
Convenzioni | # – richiede che determinati comandi linux siano eseguiti con privilegi di root o direttamente come utente root o tramite il comando sudo $ – richiede che determinati comandi linux siano eseguiti come un normale utente non privilegiato |
Scenario d’uso
Il sì stress test descritto in questo articolo può essere molto utile per la risoluzione dei problemi. Spesso, i problemi intermittenti non diventano riproducibili fino a quando il sistema non è sotto forte carico, a volte per un periodo di tempo prolungato. Potreste trovarvi in una situazione in cui la vostra macchina, o una che state mantenendo per un utente, sta sperimentando spegnimenti inaspettati, panico del kernel o altri problemi intermittenti. In questa situazione potresti voler tentare di riprodurre il problema. In questo caso, potreste eseguire il seguente comando per stressare il processore, rendendo il problema più probabile che si verifichi, e quindi osservabile per voi.
Dopo aver preso provvedimenti per rimediare alla situazione, come disinstallare il software, reinstallare il software incluso il sistema operativo o sostituire i componenti hardware, potreste eseguire nuovamente il comando per determinare se ha risolto il problema.
Sì Stress Test
Questo one-liner creerà un processo yes
da eseguire su ogni core del processore della macchina. yes
stampa ripetutamente la lettera y
finché non viene ucciso. Su un sistema inattivo, ogni processo sì utilizzerà il 100% di un core della CPU. Se il processore supporta l’hyper-threading ed è abilitato, allora creerà il doppio dei processi, poiché questo è necessario per massimizzare completamente l’utilizzo della CPU.
Il vantaggio di questo approccio è che richiede solo le utility standard che sono presenti nei sistemi GNU/Linux, quindi non è necessaria l’installazione di programmi o librerie aggiuntive. Inoltre, non richiede i privilegi di root per essere eseguito. Per iniziare, inserite il seguente comando nel vostro terminale.
$ for i in $(seq $(getconf _NPROCESSORS_ONLN)); do yes > /dev/null & done
L’Istituto Geofisico UAF, sta cercando un analista di sistemi Linux con esperienza per unirsi al loro team di analisti e ingegneri di infrastrutture informatiche di ricerca. LOCATION: Fairbanks, Alaska, USA
APPLY NOW
Dimostriamo esattamente cosa fa questo one-liner. getconf _NPROCESSORS_ONLN
ottiene il numero di core della CPU; inclusi quelli virtuali per i processori con hyper-threading. L’esecuzione del comando all’interno di $()
pone il suo output come argomento del comando seq
. seq $(getconf _NPROCESSORS_ONLN)
stampa una sequenza di numeri da 1 fino alla quantità di core CPU virtuali presenti nel sistema. L’esecuzione all’interno di $()
permette di usare quella sequenza di numeri nel nostro ciclo for di bash.
Infine, il ciclo for stesso, for i in $(seq $(getconf _NPROCESSORS_ONLN)); do yes > /dev/null & done
prende la sequenza di numeri da 1 alla quantità di core virtuali e per ognuno di essi avvia un processo sì e reindirizza il suo output a /dev/null
.
Quando si esegue questo comando è consigliabile utilizzare top
, htop
o qualche altro programma per monitorare l’utilizzo della CPU al fine di verificare che stia raggiungendo il 100%. Abbiamo precedentemente pubblicato un articolo su come controllare e monitorare l’utilizzo della cpu su linux.
Quando vuoi fermare i processi yes
e tornare al normale utilizzo della CPU, inserisci semplicemente quanto segue nel tuo terminale.
$ killall yes
Altri metodi di stress test della CPU
Stress
Stress è un semplice generatore di carico di lavoro che impone una quantità configurabile di stress al sistema. Oltre ad essere in grado di testare la CPU, è anche in grado di eseguire stress di memoria, I/O e disco su un sistema.
Su Arch Linux e Manjaro può essere installato con il seguente comando.
$ pacman -S stress
Su Debian, Ubuntu e Mint può essere installato con il seguente comando.
$ sudo apt install stress
Sulle distro basate su RHEL può essere installato con il seguente comando dopo aver abilitato l’Extra Packages for Enterprise Linux (EPEL) Repository
$ sudo yum install stress
Per eseguire uno stress test con stress
, basta inserire il seguente comando dove il numero usato in --cpu
è la quantità di thread da avviare. Per stressare completamente la CPU, questo dovrebbe essere il numero totale di core della CPU o il doppio se la CPU supporta l’hyper-threading. Potete ottenere il numero appropriato da usare inserendo getconf _NPROCESSORS_ONLN
. Nel nostro esempio stiamo eseguendo lo stress test su un quad core i7 che supporta l’hyper-threading, quindi usiamo 8.
$ stress --cpu 8
S-tui
s-tui
è un front-end di interfaccia utente testuale per il comando stress
. Oltre ad eseguire lo stress test eseguito da stress
, s-tui
monitora anche la temperatura della CPU, la frequenza, la potenza e l’utilizzo visualizzando i grafici corrispondenti ad ogni valore nel terminale. s-tui
può essere installato su tutte le distribuzioni utilizzando pip. Per farlo, inserite il seguente comando.
$ pip install s-tui --user
Per eseguire lo stress test inserite il comando s-tui
nel vostro terminale, poi premete la freccia giù (o il tasto j) e premete invio per passare dalla modalità monitor
a quella stress
. Vedrete una rappresentazione grafica simile al seguente screenshot.
Conclusione
In questo articolo abbiamo visto come massimizzare l’utilizzo della CPU sul vostro sistema Linux utilizzando il comando yes
all’interno di un bash
for loop per eseguire un “sì stress test”. Abbiamo poi scomposto ogni parte del comando per vedere esattamente cosa stava facendo e come funzionava. Abbiamo discusso il monitoraggio dell’utilizzo della CPU per verificare che stia raggiungendo il 100%, poi abbiamo visto come installare e usare stress
e s-tui
per eseguire uno stress test della CPU.
Il vantaggio di usare s-tui
è che si è in grado di monitorare le prestazioni senza utilizzare alcun software aggiuntivo. Il vantaggio di usare il “sì stress test” è che sei in grado di eseguire lo stress test senza dover installare alcun software aggiuntivo. Se stai cercando di eseguire stress test più estesi e benchmarking sul tuo sistema Linux, allora il nostro articolo su come fare il benchmark del tuo sistema linux ti copre.
Lascia un commento