Sådan stresstestes din CPU på Linux
On januar 25, 2022 by adminDer er mange grunde til, at du måske ønsker at stressteste CPU’en på dit Linux-system. Du vil måske gerne se, hvordan dit operativsystem og din hardware fungerer, når du har fuld CPU-udnyttelse, så du kan opdage softwarefejl eller hardwarefejl. Alternativt kan det være, at du ønsker at generere en masse varme hurtigt for at fejlfinde et temperaturrelateret problem med din maskine; det kan du gøre ved at maksimere CPU-anvendelsen. Uanset hvad årsagen er, er der en hurtig og nem måde at nå dette mål på.
I denne vejledning vil du lære:
- Hvordan du udfører stresstest på CPU’en ved hjælp af yes stress test
- Hvordan du udfører stresstest på CPU’en ved hjælp af stress-kommandoen
- Hvordan du udfører stresstest på CPU’en ved hjælp af s-tui kommando
Softwarekrav og anvendte konventioner
Kategori | Krav, Konventioner eller anvendt softwareversion |
---|---|
System | Distributionsuafhængig |
Software | yes, getconf, seq, bash, stress, s-tui |
Andre | Ingen root-privilegier påkrævet for yes-stress-testen. Privilegeret adgang til dit Linux-system som root eller via kommandoen sudo kan være påkrævet for at installere andre stresstestpakker. |
Konventioner | # – kræver, at givne linux-kommandoer udføres med root-privilegier enten direkte som root-bruger eller ved brug af sudo kommando$ – kræver, at givne linux-kommandoer udføres som en almindelig ikke-privilegeret bruger |
Brugsscenarie
Den ja-stresstest, der er beskrevet i denne artikel, kan være meget nyttig i forbindelse med fejlfinding. Ofte bliver intermitterende problemer ikke reproducerbare, før systemet er under stor belastning, nogle gange i en længere periode. Du kan komme i en situation, hvor din maskine, eller en maskine, som du vedligeholder for en bruger, oplever uventede nedlukninger, kernepanik eller andre intermitterende problemer. I denne situation vil du måske forsøge at reproducere problemet. I så fald kan du køre følgende kommando for at stressteste processoren, hvilket gør det mere sandsynligt, at problemet opstår, og derfor kan observeres af dig.
Når du har taget skridt til at afhjælpe situationen, f.eks. afinstallere software, geninstallere software, herunder operativsystemet, eller udskifte hardwarekomponenter, kan du køre kommandoen igen for at afgøre, om den har løst problemet.
Ja Stresstest
Denne one-liner opretter en yes
proces, der skal køres på hver processorkerne i maskinen. yes
udskriver bogstavet y
gentagne gange, indtil den bliver dræbt. På et inaktivt system vil hver ja-proces udnytte 100 % af en CPU-kerne. Hvis processoren understøtter hyper-threading, og det er aktiveret, vil den oprette dobbelt så mange processer, da dette er nødvendigt for at maksimere CPU-udnyttelsen fuldt ud.
Fordelen ved denne fremgangsmåde er, at den kun kræver standard hjælpeprogrammer, der leveres ud af boksen på GNU/Linux-systemer, så der er ikke behov for installation af yderligere programmer eller biblioteker. Desuden kræver den ikke root-privilegier for at køre. For at begynde skal du indtaste følgende kommando i din terminal.
$ for i in $(seq $(getconf _NPROCESSORS_ONLN)); do yes > /dev/null & done
UAF Geophysical Institute, søger en erfaren Linux Systems Analyst til at slutte sig til deres team af analytikere og ingeniører inden for forskning i cyberinfrastruktur. LOKALITET: Fairbanks, Alaska, USA
ANSØG NU
Lad os nedbryde præcis, hvad denne one-liner gør. getconf _NPROCESSORS_ONLN
får antallet af CPU-kerner; herunder virtuelle kerner for processorer med hyper-threading. Kørsel af kommandoen inden for $()
placerer dens output som et argument til seq
-kommandoen. seq $(getconf _NPROCESSORS_ONLN)
udskriver en sekvens af tal fra 1 og op til antallet af virtuelle CPU-kerner, der er til stede i systemet. Hvis du kører det inden for $()
, kan denne talsekvens bruges i vores bash for-loop.
Slutteligt tager selve for-løjpen, for i in $(seq $(getconf _NPROCESSORS_ONLN)); do yes > /dev/null & done
, sekvensen af tal fra 1 til antallet af virtuelle kerner og starter for hver af dem en yes-proces og omdirigerer dens output til /dev/null
.
Når du kører denne kommando, er det tilrådeligt at bruge top
, htop
eller et andet program til at overvåge CPU-udnyttelsen for at verificere, at den når 100 %. Vi har tidligere udgivet en artikel om, hvordan du kontrollerer og overvåger cpu-udnyttelsen på linux.
Når du ønsker at stoppe yes
-processerne og vende tilbage til normal cpu-udnyttelse, skal du blot indtaste følgende i din terminal.
$ killall yes
Andre metoder til CPU-stresstest
Stress
Stress er en simpel arbejdsbelastningsgenerator, der pålægger systemet en konfigurerbar mængde stress. Ud over at kunne stressteste CPU’en er den også i stand til at udføre hukommelses-, I/O- og diskstress på et system.
På Arch Linux og Manjaro kan den installeres med følgende kommando.
$ pacman -S stress
På Debian, Ubuntu og Mint kan den installeres med følgende kommando.
$ sudo apt install stress
På RHEL-baserede distroer kan den installeres med følgende kommando efter aktivering af Extra Packages for Enterprise Linux (EPEL) Repository
$ sudo yum install stress
For at udføre en stresstest med stress
skal du blot indtaste følgende kommando, hvor det anvendte tal i --cpu
er det antal tråde, der skal startes. For at stresse CPU’en fuldt ud skal dette være det samlede antal CPU-kerner eller det dobbelte, hvis CPU’en understøtter hyper-threading. Du kan få det passende antal, der skal bruges, ved at indtaste getconf _NPROCESSORS_ONLN
. I vores eksempel udfører vi stresstesten på en quad core i7, som understøtter hyper-threading, så vi bruger 8.
$ stress --cpu 8
$ stress --cpu 8
S-tui
s-tui
er en front-end til tekstbrugergrænsefladen til kommandoen stress
. Ud over at køre den stresstest, der udføres af stress
, overvåger s-tui
også CPU-temperatur, -frekvens, -strøm og -udnyttelse, mens der vises grafer svarende til hver værdi i terminalen. s-tui
kan installeres på tværs af alle distributioner ved hjælp af pip. For at gøre det skal du indtaste følgende kommando:
$ pip install s-tui --user
For at køre stresstesten skal du indtaste kommandoen s-tui
i din terminal og derefter trykke på pil nedad (eller j-tasten) og trykke på enter for at skifte fra monitor
-tilstand til stress
-tilstand. Du vil se en grafisk repræsentation svarende til følgende skærmbillede.
Slutning
I denne artikel så vi, hvordan du kan maksimere CPU-udnyttelsen på dit Linux-system ved hjælp af yes
-kommandoen inden for en bash
for-loop for at udføre en “ja-stresstest”. Vi brød derefter hver enkelt del af kommandoen ned for at se præcis, hvad den gjorde, og hvordan den fungerede. Vi diskuterede overvågning af CPU-udnyttelsen for at kontrollere, at den når 100 %, og derefter så vi, hvordan du installerer og bruger stress
og s-tui
til at udføre en CPU-stresstest.
Fordelen ved at bruge s-tui
er, at du er i stand til at overvåge ydeevnen uden at bruge yderligere software. Fordelen ved at bruge “yes stress test” er, at du er i stand til at udføre stresstesten uden at skulle installere yderligere software. Hvis du ønsker at udføre mere omfattende stresstest og benchmarking på dit Linux-system, så er du dækket ind i vores artikel om, hvordan du benchmarker dit Linux-system.
Skriv et svar