Stresstest der CPU unter Linux
On Januar 25, 2022 by adminEs gibt viele Gründe, warum Sie die CPU Ihres Linux-Systems einem Stresstest unterziehen möchten. Vielleicht möchten Sie sehen, wie sich Ihr Betriebssystem und Ihre Hardware bei voller CPU-Auslastung verhalten, um Softwarefehler oder Hardwareausfälle zu erkennen. Oder Sie möchten schnell viel Wärme erzeugen, um ein temperaturbedingtes Problem mit Ihrem Rechner zu beheben; die Maximierung der CPU-Auslastung wird dies ermöglichen. Was auch immer der Grund ist, es gibt eine schnelle und einfache Möglichkeit, dieses Ziel zu erreichen.
In diesem Tutorial werden Sie lernen:
- Wie man Stresstests auf der CPU mit dem Stresstest yes durchführt
- Wie man Stresstests auf der CPU mit dem Befehl stress durchführt
- Wie man Stresstests auf der CPU mit dem Befehl s-tui-Befehl
Softwareanforderungen und verwendete Konventionen
Kategorie | Anforderungen, Konventionen oder verwendete Softwareversion |
---|---|
System | Distributionsunabhängig |
Software | yes, getconf, seq, bash, stress, s-tui |
Sonstiges | Für den yes-Stresstest sind keine root-Rechte erforderlich. Für die Installation anderer Stresstest-Pakete ist möglicherweise ein privilegierter Zugriff auf Ihr Linux-System als root oder über den Befehl sudo erforderlich. |
Konventionen | # – erfordert, dass gegebene Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder durch Verwendung des sudo -Befehls$ – erfordert, dass die angegebenen Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden |
Benutzungsszenario
Der in diesem Artikel beschriebene Ja-Stresstest kann für die Fehlersuche sehr nützlich sein. Häufig werden intermittierende Probleme erst dann reproduzierbar, wenn das System über einen längeren Zeitraum stark belastet wird. Möglicherweise befinden Sie sich in einer Situation, in der Ihr Rechner oder ein Rechner, den Sie für einen Benutzer warten, unerwartet heruntergefahren wird, der Kernel in Panik gerät oder andere intermittierende Probleme auftreten. In dieser Situation sollten Sie versuchen, das Problem zu reproduzieren. In diesem Fall könnten Sie den folgenden Befehl ausführen, um den Prozessor einem Stresstest zu unterziehen, der das Auftreten des Problems wahrscheinlicher macht und somit für Sie beobachtbar ist.
Nachdem Sie Maßnahmen zur Behebung des Problems ergriffen haben, wie z. B. die Deinstallation von Software, die Neuinstallation von Software einschließlich des Betriebssystems oder den Austausch von Hardwarekomponenten, können Sie den Befehl erneut ausführen, um festzustellen, ob das Problem dadurch behoben wurde.
Ja Stresstest
Dieser Einzeiler erstellt einen yes
-Prozess, der auf jedem Prozessorkern des Computers ausgeführt wird. yes
gibt wiederholt den Buchstaben y
aus, bis er beendet wird. Auf einem System im Leerlauf wird jeder yes-Prozess 100 % eines CPU-Kerns nutzen. Wenn der Prozessor Hyper-Threading unterstützt und es aktiviert ist, werden doppelt so viele Prozesse erzeugt, da dies notwendig ist, um die CPU-Auslastung zu maximieren.
Der Vorteil dieses Ansatzes besteht darin, dass nur Standarddienstprogramme benötigt werden, die auf GNU/Linux-Systemen standardmäßig mitgeliefert werden, so dass keine Installation zusätzlicher Programme oder Bibliotheken erforderlich ist. Außerdem sind für die Ausführung keine Root-Rechte erforderlich. Um zu beginnen, geben Sie den folgenden Befehl in Ihr Terminal ein.
$ for i in $(seq $(getconf _NPROCESSORS_ONLN)); do yes > /dev/null & done
Das Geophysikalische Institut der UAF sucht einen erfahrenen Linux-Systemanalytiker zur Verstärkung seines Teams von Analysten und Ingenieuren im Bereich der Cyber-Infrastruktur. STANDORT: Fairbanks, Alaska, USA
JETZT BEWERBEN
Lassen Sie uns genau aufschlüsseln, was dieser Einzeiler tut. getconf _NPROCESSORS_ONLN
ermittelt die Anzahl der CPU-Kerne, einschließlich virtueller Kerne für Prozessoren mit Hyper-Threading. Wenn Sie den Befehl innerhalb von $()
ausführen, wird seine Ausgabe als Argument für den Befehl seq
verwendet. seq $(getconf _NPROCESSORS_ONLN)
gibt eine Zahlenfolge von 1 bis zur Anzahl der im System vorhandenen virtuellen CPU-Kerne aus. Wenn Sie dies innerhalb von $()
ausführen, kann diese Zahlenfolge in unserer Bash-for-Schleife verwendet werden.
Schließlich nimmt die for-Schleife selbst, for i in $(seq $(getconf _NPROCESSORS_ONLN)); do yes > /dev/null & done
, die Zahlenfolge von 1 bis zur Anzahl der virtuellen Kerne und startet für jeden von ihnen einen yes-Prozess und leitet dessen Ausgabe an /dev/null
weiter.
Wenn dieser Befehl ausgeführt wird, ist es ratsam, top
, htop
oder ein anderes Programm zur Überwachung der CPU-Auslastung zu verwenden, um zu überprüfen, ob sie 100% erreicht. Wir haben bereits einen Artikel darüber veröffentlicht, wie man die CPU-Auslastung unter Linux prüft und überwacht.
Wenn Sie die yes
-Prozesse stoppen und zur normalen CPU-Auslastung zurückkehren möchten, geben Sie einfach Folgendes in Ihr Terminal ein.
$ killall yes
Andere CPU-Stresstest-Methoden
Stress
Stress ist ein einfacher Workload-Generator, der dem System eine konfigurierbare Menge an Stress auferlegt. Zusätzlich zu den Stresstests für die CPU kann es auch Speicher-, E/A- und Festplatten-Stress auf einem System durchführen.
Unter Arch Linux und Manjaro kann es mit dem folgenden Befehl installiert werden.
$ pacman -S stress
Unter Debian, Ubuntu und Mint kann es mit dem folgenden Befehl installiert werden.
$ sudo apt install stress
Auf RHEL-basierten Distributionen kann es mit dem folgenden Befehl installiert werden, nachdem das Extra Packages for Enterprise Linux (EPEL) Repository aktiviert wurde
$ sudo yum install stress
Um einen Stresstest mit stress
durchzuführen, geben Sie einfach den folgenden Befehl ein, wobei die Zahl in --cpu
die Anzahl der zu startenden Threads ist. Um die CPU vollständig zu belasten, sollte dies die Gesamtzahl der CPU-Kerne sein oder das Doppelte, wenn die CPU Hyper-Threading unterstützt. Sie können die entsprechende Zahl durch Eingabe von getconf _NPROCESSORS_ONLN
ermitteln. In unserem Beispiel führen wir den Stresstest auf einem Quad-Core i7 durch, der Hyper-Threading unterstützt, also verwenden wir 8.
$ stress --cpu 8
S-tui
s-tui
ist ein Text-Benutzeroberflächen-Frontend für den Befehl stress
. Zusätzlich zum Stresstest, der von stress
durchgeführt wird, überwacht s-tui
auch die CPU-Temperatur, -Frequenz, -Leistung und -Auslastung und zeigt die Graphen zu jedem Wert im Terminal an. s-tui
kann mit Hilfe von pip auf allen Distributionen installiert werden. Geben Sie dazu den folgenden Befehl ein.
$ pip install s-tui --user
Um den Stresstest auszuführen, geben Sie den Befehl s-tui
in Ihr Terminal ein, drücken Sie dann den Pfeil nach unten (oder die j-Taste) und drücken Sie die Eingabetaste, um vom Modus monitor
in den Modus stress
zu wechseln. Sie werden eine grafische Darstellung ähnlich dem folgenden Screenshot sehen.
Abschluss
In diesem Artikel haben wir gesehen, wie man die CPU-Auslastung auf dem Linux-System mit dem yes
-Befehl innerhalb einer bash
-for-Schleife maximiert, um einen „Ja-Stresstest“ durchzuführen. Wir haben dann jeden Teil des Befehls aufgeschlüsselt, um genau zu sehen, was er tut und wie er funktioniert. Wir haben die Überwachung der CPU-Auslastung besprochen, um zu überprüfen, ob sie 100 % erreicht, und haben dann gesehen, wie man stress
und s-tui
installiert und verwendet, um einen CPU-Stresstest durchzuführen.
Der Vorteil der Verwendung von s-tui
ist, dass man die Leistung ohne zusätzliche Software überwachen kann. Der Vorteil des „Ja-Stresstests“ besteht darin, dass Sie den Stresstest durchführen können, ohne zusätzliche Software installieren zu müssen. Wenn Sie umfangreichere Stresstests und Benchmarking auf Ihrem Linux-System durchführen möchten, finden Sie in unserem Artikel über das Benchmarking Ihres Linux-Systems weitere Informationen.
Schreibe einen Kommentar