Hoe uw CPU onder Linux te testen
On januari 25, 2022 by adminEr zijn vele redenen waarom u de CPU van uw Linux systeem zou willen testen. Misschien wilt u zien hoe uw besturingssysteem en hardware presteren wanneer de CPU volledig wordt benut, om fouten in de software of hardwarefouten op te sporen. Het kan ook zijn dat je snel veel warmte wilt genereren om een temperatuur-gerelateerd probleem met je machine op te lossen; het maximaliseren van het CPU gebruik zal dat doen. Wat de reden ook is, er is een snelle en eenvoudige manier om dat doel te bereiken.
In deze tutorial leer je:
- Hoe u stresstests op de CPU kunt uitvoeren met het commando yes stress test
- Hoe u stresstests op de CPU kunt uitvoeren met het commando stress
- Hoe u stresstests op de CPU kunt uitvoeren met het commando s-tui commando
Softwarevereisten en gebruikte conventies
Categorie | Vereisten, Conventies of gebruikte softwareversie |
---|---|
Systeem | Distributie-onafhankelijk |
Software | yes, getconf, seq, bash, stress, s-tui |
Anders | Voor de yes-stresstest zijn geen root-privileges nodig. Mogelijk is geprivilegieerde toegang tot uw Linux-systeem als root of via het sudo -commando nodig om andere stresstestpakketten te installeren. |
Voorschriften | # – vereist dat gegeven linux commando’s worden uitgevoerd met root privileges, ofwel direct als root gebruiker of door gebruik te maken van sudo commando$ -. vereist dat de gegeven Linux commando’s worden uitgevoerd als een gewone gebruiker zonder privileges |
Gebruiksscenario
De ja-stresstest die in dit artikel wordt beschreven, kan zeer nuttig zijn voor probleemoplossing. Vaak worden intermitterende problemen pas reproduceerbaar wanneer het systeem zwaar wordt belast, soms gedurende een langere periode. U kunt in een situatie terechtkomen waarin uw machine, of een machine die u onderhoudt voor een gebruiker, last heeft van onverwachte shutdowns, kernel panics of andere intermitterende problemen. In deze situatie zou u kunnen proberen om het probleem te reproduceren. In dat geval kunt u het volgende commando uitvoeren om de processor te stresstesten, waardoor het waarschijnlijker wordt dat het probleem zich voordoet, en dus voor u waarneembaar is.
Nadat u stappen hebt ondernomen om de situatie te verhelpen, zoals het verwijderen van software, het opnieuw installeren van software inclusief het besturingssysteem of het vervangen van hardwarecomponenten, kunt u het commando opnieuw uitvoeren om te bepalen of het probleem is opgelost.
Yes Stress Test
Deze one-liner maakt een yes
proces aan dat wordt uitgevoerd op elke processorkern van de machine. yes
drukt herhaaldelijk de letter y
af totdat het wordt gedood. Op een inactief systeem zal elk ja proces 100% van een CPU kern gebruiken. Als de processor hyper-threading ondersteunt en deze is ingeschakeld, dan zullen er twee keer zoveel processen worden aangemaakt, omdat dit nodig is om het CPU-gebruik volledig te maximaliseren.
Het voordeel van deze aanpak is dat er alleen standaard hulpprogramma’s voor nodig zijn die al uit de doos komen op GNU/Linux systemen, dus er hoeven geen extra programma’s of bibliotheken te worden geïnstalleerd. Bovendien heeft het geen root privileges nodig om te draaien. Om te beginnen voert u het volgende commando in uw terminal in.
$ for i in $(seq $(getconf _NPROCESSORS_ONLN)); do yes > /dev/null & done
Het UAF Geophysical Institute is op zoek naar een ervaren Linux Systems Analyst om hun team van cyber-infrastructuuranalisten en -ingenieurs te komen versterken. LOCATION: Fairbanks, Alaska, USA
APPLY NOW
Laten we eens uiteenzetten wat deze one-liner precies doet. getconf _NPROCESSORS_ONLN
verkrijgt het aantal CPU-kernen, inclusief virtuele kernen voor processoren met hyper-threading. Het uitvoeren van het commando binnen $()
plaatst de uitvoer ervan als een argument voor het seq
commando. seq $(getconf _NPROCESSORS_ONLN)
drukt een reeks getallen af van 1 tot het aantal virtuele CPU-kernen dat in het systeem aanwezig is. Door dat binnen $()
uit te voeren, kan die reeks getallen worden gebruikt in onze bash for-lus.
De for-lus zelf, for i in $(seq $(getconf _NPROCESSORS_ONLN)); do yes > /dev/null & done
neemt de reeks getallen van 1 tot het aantal virtuele cores en start voor elk daarvan een yes-proces en stuurt de uitvoer door naar /dev/null
.
Wanneer u dit commando uitvoert, is het raadzaam om top
, htop
of een ander programma te gebruiken om het CPU-gebruik in de gaten te houden om te controleren of het 100% bereikt. We hebben eerder een artikel gepubliceerd over het controleren en monitoren van CPU gebruik op linux.
Wanneer u de yes
processen wilt stoppen en terug wilt naar normaal CPU gebruik, voert u simpelweg het volgende in uw terminal in.
$ killall yes
Andere CPU Stress Test Methodes
Stress
Stress is een eenvoudige werklast generator die een configureerbare hoeveelheid stress op het systeem uitoefent. Naast het kunnen testen van de CPU, kan het ook geheugen, I/O en schijf stress op een systeem uitvoeren.
Op Arch Linux en Manjaro kan het worden geïnstalleerd met het volgende commando.
$ pacman -S stress
Op Debian, Ubuntu en Mint kan het worden geïnstalleerd met het volgende commando.
$ sudo apt install stress
Op RHEL gebaseerde distro’s kan het worden geïnstalleerd met het volgende commando na het inschakelen van de Extra Packages for Enterprise Linux (EPEL) Repository
$ sudo yum install stress
Om een stress test uit te voeren met stress
, voert u simpelweg het volgende commando in waarbij het getal in --cpu
het aantal threads is dat moet worden gestart. Om de CPU volledig te belasten, moet dit het totale aantal CPU-kernen zijn of het dubbele als de CPU hyper-threading ondersteunt. U kunt het juiste aantal krijgen door getconf _NPROCESSORS_ONLN
in te voeren. In ons voorbeeld voeren we de stresstest uit op een quad core i7 die hyper-threading ondersteunt, dus gebruiken we 8.
$ stress --cpu 8
S-tui
s-tui
is een tekst-gebruikersinterface front-end voor het stress
commando. Naast het uitvoeren van de stresstest die door stress
wordt uitgevoerd, controleert s-tui
ook de CPU-temperatuur, -frequentie, -vermogen en -gebruik, terwijl het grafieken weergeeft die overeenkomen met elke waarde in de terminal. s-tui
kan worden geïnstalleerd op alle distributies door pip te gebruiken. Om dit te doen, voert u het volgende commando in.
$ pip install s-tui --user
Om de stresstest uit te voeren voert u het s-tui
commando in uw terminal in, druk dan op de pijl omlaag (of j toets) en druk op enter om van monitor
modus naar stress
modus te schakelen. U ziet een grafische voorstelling die lijkt op de volgende schermafbeelding.
Conclusie
In dit artikel hebben we gezien hoe u het CPU-gebruik op uw Linux-systeem kunt maximaliseren door gebruik te maken van het yes
-commando binnen een bash
-for-lus om een “ja-stresstest” uit te voeren. Vervolgens hebben we elk onderdeel van het commando uitgesplitst om precies te zien wat het deed en hoe het werkte. We bespraken het monitoren van het CPU-gebruik om te controleren of het 100% bereikt, daarna zagen we hoe stress
en s-tui
geïnstalleerd en gebruikt moeten worden om een CPU-stresstest uit te voeren.
Het voordeel van het gebruik van s-tui
is dat u in staat bent om de prestaties te monitoren zonder extra software te gebruiken. Het voordeel van het gebruik van “yes stress test” is dat u in staat bent om de stresstest uit te voeren zonder extra software te hoeven installeren. Als u meer uitgebreide stresstests en benchmarks op uw Linux systeem wilt uitvoeren, kunt u terecht in ons artikel over het benchmarken van uw Linux systeem.
Geef een antwoord