Hur man stresstestar processorn i Linux
On januari 25, 2022 by adminDet finns många anledningar till varför du vill stresstesta processorn i ditt Linuxsystem. Du kanske vill se hur operativsystemet och hårdvaran presterar när du har fullt CPU-utnyttjande för att upptäcka programvarufel eller hårdvarufel. Alternativt kanske du vill generera mycket värme snabbt för att felsöka ett temperaturrelaterat problem med din maskin; att maximera CPU-utnyttjandet kommer att göra det. Oavsett orsaken finns det ett snabbt och enkelt sätt att uppnå detta mål.
I den här handledningen lär du dig:
- Hur man utför stresstester på CPU:n med hjälp av yes stress test
- Hur man utför stresstester på CPU:n med hjälp av stress kommandot
- Hur man utför stresstester på CPU:n med hjälp av s-.tui kommandot
Mjukvarukrav och använda konventioner
Kategori | Krav, Konventioner eller programvaruversion som används |
---|---|
System | Distributionsoberoende |
Mjukvara | yes, getconf, seq, bash, stress, s-tui |
Andra | Ingen rotbehörighet krävs för stresstestet yes. Priviligierad åtkomst till ditt Linuxsystem som root eller via kommandot sudo kan krävas för att installera andra stresstestpaket. |
Konventioner | # – kräver att givna Linux-kommandon utförs med root-privilegier, antingen direkt som root-användare eller med hjälp av sudo kommandot$ – kräver att givna linuxkommandon exekveras som en vanlig icke-priviligierad användare |
Användningsscenario
Det ja-stresstest som beskrivs i den här artikeln kan vara mycket användbart för felsökning. Ofta blir intermittenta problem inte reproducerbara förrän systemet är hårt belastat, ibland under en längre tid. Du kan hamna i en situation där din maskin, eller en maskin som du underhåller åt en användare, upplever oväntade avstängningar, kärnpanik eller andra intermittenta problem. I en sådan situation kanske du vill försöka reproducera problemet. I så fall kan du köra följande kommando för att stresstesta processorn, vilket gör det mer sannolikt att problemet uppstår och därför kan observeras av dig.
När du har vidtagit åtgärder för att åtgärda situationen, t.ex. avinstallation av programvara, ominstallation av programvara inklusive operativsystemet eller byte av hårdvarukomponenter, kan du köra kommandot igen för att avgöra om det har löst problemet eller inte.
Ja Stresstest
Den här enlinjiga texten kommer att skapa en yes
-process som körs på varje processorkärna i maskinen. yes
skriver ut bokstaven y
upprepade gånger tills den dödas. På ett inaktivt system kommer varje ja-process att använda 100 % av en processorkärna. Om processorn stöder hyper-threading och det är aktiverat kommer den att skapa dubbelt så många processer, eftersom detta är nödvändigt för att fullt ut maximera CPU-utnyttjandet.
Fördelen med detta tillvägagångssätt är att det endast kräver standardverktyg som finns i paketet på GNU/Linux-system, så ingen installation av ytterligare program eller bibliotek behövs. Dessutom krävs det inga root-privilegier för att det ska kunna köras. För att börja, ange följande kommando i terminalen.
$ for i in $(seq $(getconf _NPROCESSORS_ONLN)); do yes > /dev/null & done
UAF Geophysical Institute, söker en erfaren Linux Systems Analyst för att gå med i deras team av analytiker och ingenjörer inom forskning om cyberinfrastruktur. PLATS: Fairbanks, Alaska, USA
ANSÖK NU
Låt oss gå igenom exakt vad den här enraden gör. getconf _NPROCESSORS_ONLN
får fram antalet CPU-kärnor, inklusive virtuella kärnor för processorer med hypertrådning. När kommandot körs inom $()
placeras dess utdata som ett argument för kommandot seq
. seq $(getconf _NPROCESSORS_ONLN)
skriver ut en sekvens av siffror från 1 upp till antalet virtuella CPU-kärnor som finns i systemet. Genom att köra det inom $()
kan den sekvensen av siffror användas i vår bash for-slinga.
Slutligt tar själva for-slingan, for i in $(seq $(getconf _NPROCESSORS_ONLN)); do yes > /dev/null & done
, sekvensen av siffror från 1 till antalet virtuella kärnor och för var och en av dem startar en yes-process och omdirigerar dess utdata till /dev/null
.
När du kör det här kommandot är det lämpligt att använda top
, htop
eller något annat program för att övervaka CPU-utnyttjandet för att kontrollera att det når 100 %. Vi har tidigare publicerat en artikel om hur man kontrollerar och övervakar cpu-utnyttjande på linux.
När du vill stoppa yes
-processerna och återgå till normalt cpu-utnyttjande skriver du helt enkelt in följande i terminalen.
$ killall yes
Andra metoder för cpu-stress-test
Stress
Stress är en enkel arbetsbelastningsgenerator som utsätter systemet för en konfigurerbar mängd stress. Förutom att den kan stresstesta processorn kan den också utföra stress på minnet, I/O och disken på ett system.
På Arch Linux och Manjaro kan den installeras med följande kommando.
$ pacman -S stress
På Debian, Ubuntu och Mint kan den installeras med följande kommando.
$ sudo apt install stress
På RHEL-baserade distributioner kan det installeras med följande kommando efter att ha aktiverat Extra Packages for Enterprise Linux (EPEL) Repository
$ sudo yum install stress
För att utföra ett stresstest med stress
, ange helt enkelt följande kommando där siffran som används i --cpu
är antalet trådar som ska startas. För att stressa CPU:n fullt ut bör detta vara det totala antalet CPU-kärnor eller det dubbla om CPU:n har stöd för hypertrådning. Du kan få fram det lämpliga antalet som ska användas genom att ange getconf _NPROCESSORS_ONLN
. I vårt exempel utför vi stresstestet på en fyrkärnig i7 som har stöd för hypertrådning, så vi använder 8.
$ stress --cpu 8
S-tui
s-tui
är en framsida för textanvändargränssnittet för kommandot stress
. Förutom att köra stresstestet som utförs av stress
övervakar s-tui
också CPU-temperatur, frekvens, effekt och utnyttjande samtidigt som det visar grafer som motsvarar varje värde i terminalen. s-tui
kan installeras i alla distributioner med hjälp av pip. För att göra det anger du följande kommando:
$ pip install s-tui --user
För att köra stresstestet anger du kommandot s-tui
i terminalen, trycker sedan på nedåtpilen (eller j-tangenten) och trycker på enter för att växla från monitor
-läget till stress
-läget. Du kommer att se en grafisk representation som liknar följande skärmdump.
Slutsats
I den här artikeln såg vi hur du maximerar CPU-utnyttjandet på ditt Linuxsystem med hjälp av yes
-kommandot inom en bash
-for-slinga för att utföra ett ”ja-stresttest”. Vi bröt sedan ner varje del av kommandot för att se exakt vad det gjorde och hur det fungerade. Vi diskuterade övervakning av CPU-utnyttjandet för att kontrollera att det når 100 %, sedan såg vi hur man installerar och använder stress
och s-tui
för att utföra ett CPU-strest.
Fördelen med att använda s-tui
är att du kan övervaka prestandan utan att använda någon ytterligare programvara. Fördelen med att använda ”yes stress test” är att du kan utföra stresstestet utan att behöva installera någon ytterligare programvara. Om du vill köra mer omfattande stresstester och benchmarking på ditt Linuxsystem kan du läsa vår artikel om hur du benchmarkar ditt Linuxsystem.
Lämna ett svar