CPU-Stresstest unter Linux. Arbeiten Sie mit der Phoronix Test Suite oder wie testen Sie die Leistung virtueller Maschinen unter Linux? Zu den Dateiberechtigungsattributen gehören:

Die Überwachung erfolgt über eine Reihe von Programmen LM-Sensoren.


Eignung, LM-Sensoren zu installieren

Sie können Sensorablesungen mit dem Befehl vornehmen:


Sensoren

Die Temperaturüberwachung in Echtzeit wird mit dem folgenden Befehl durchgeführt:


Uhrensensoren

Die Ausgabe des Befehls enthält Informationen über Spannung, Lüftergeschwindigkeit, Prozessortemperatur (jeder Kern separat) und Temperatur Festplatte. Ein wichtiger Indikator ist der maximal erfasste Temperaturwert (Feld). hoch in Kerntemperaturmessungen). Mit dem folgenden Befehl können Sie nur die Temperatur des Prozessors überwachen:


while (true) do date; Sensoren | grep-Kern; echo "======"; Schlaf 1s; Erledigt

Es gibt auch verschiedene grafische Dienstprogramme zur Anzeige von Messwerten. LM-Sensoren. Für GNOME einfach zu bedienendes Applet GNOME-Sensoren-Applet.

CPU-Stresstest

Plastiktüte cpuburn

Überprüfen der Funktion von Grafikkartentreibern

Auf 3D-Beschleunigung prüfen:


glxinfo | grep OpenGL

Die Ausgabe sollte so aussehen:


OpenGL-Anbieterzeichenfolge: Tungsten Graphics, Inc OpenGL-Rendererzeichenfolge: Mesa DRI Intel(R) G33 GEM 20100330 ENTWICKLUNG OpenGL-Versionszeichenfolge: 1.4 Mesa 7.10-devel OpenGL-Erweiterungen:

Überprüfen wir die Unterstützung der 3D-Beschleunigung mithilfe der Grafikkarte:


glxinfo | grep direkt

Wenn 3D-Unterstützung implementiert ist, lautet die Ausgabe:


Direktwiedergabe: Ja

Lassen Sie uns die Geschwindigkeit von 3D überprüfen:


glxgears

Es erscheint ein Fenster mit einer einfachen 3D-Animation. In diesem Fall werden alle 5 Sekunden Informationen zur Rendering-Geschwindigkeit in der Konsole angezeigt. Normale FPS-Werte für einen konfigurierten Treiber sollten im Durchschnitt über 1000 liegen (wenn V-Sync aktiviert ist, wird der FPS-Wert durch die Synchronisierungsfrequenz begrenzt).

Ein weiterer OpenGL-Test:


/usr/lib/xscreensaver/glblur-fps

Es erscheint ein Bildschirmschonerfenster mit dem FPS-Wert.

Bei Problemen können Sie den Grafiktreiber neu installieren (für integrierte Intel-Grafiken müssen Sie das Paket neu installieren). xserver-xorg-video-intel). Die Treibereinstellungen werden vom Programm vorgenommen driconf. Um den Betrieb der Intel-Grafikkarte zu steuern, können Sie das Paket außerdem installieren Intel-GPU-Tools(Das Paket enthält das Dienstprogramm intel_gpu_top, mit dem Sie die Auslastung des Videoprozessors in Echtzeit überwachen können.)

Systemleistungstests

Phoronix-Testsuite-Paket

Leistungstests werden vom Programm durchgeführt Phoronix-Testsuite. Dabei handelt es sich um eine Software-Shell, mit der Sie verschiedene Testprogramme automatisch herunterladen und ausführen sowie Daten zu Testergebnissen sammeln und speichern können.

Lassen Sie uns das Programm installieren:


aptitude installiert die Phoronix-Testsuite

Sehen Sie sich eine Liste aller verfügbaren Tests an kurze Beschreibung geht mit folgendem Befehl:


Phoronix-Testsuite-Listentests

Die Tests werden mit dem Befehl ausgeführt:


Phoronix-Testsuite-Benchmark TEST_NAME

  • Zentralprozessor:

    • c-ray- Multithread-Mathetest. Hohe Belastung des Prozessors. Ergebnis auf C2D 2.0: 387,55 Sekunden.

    • Build-Linux-Kernel- Assemblierung des Linux-Kernels. Langer Test. Belastet Prozessor und Speicher gleichmäßig (verwendet gcc).

    • scimark2- leistungsstarker Single-Threaded-Test (intensives wissenschaftliches Rechnen). Zeigt die Leistung eines einzelnen Kerns in Gigaflops an.

    • ffmpeg- Videokodierung (Testdateien belegen 130 MB). Auf C2D 2.0: 25,99 Sekunden.


  • Speicher:

    • Ramgeschwindigkeit- Gedächtnistest. Durchschnittliche CPU-Auslastung. Ergebnisse DDR2-800 2 GB (Kopie, int): 2280,10 MB/s.

    • Strom- Zeigt die Speichergeschwindigkeit bei verschiedenen Vorgängen an.


  • Festplatte:

    • Iozone- prüfen Festplatte. Zeigt die Lese- und Schreibgeschwindigkeit für Blöcke unterschiedlicher Länge an. Ergebnis WD 80Gb (W,4K,512M): 52,42 MB/s.


  • Grafik:

    • gtkperf- Testen verschiedener Elemente der GNOME-GUI.

    • Unigine-Tropen- Schöner 3D-Benchmark, Sie benötigen angepasste Treiber mit Unterstützung für 3D-Beschleunigung.


Für langfristige, vielfältige Tests wird es empfohlen Build-Linux-Kernel. Für kurze Stresstests c-ray(zusammen mit dem Programm

Frage Computerdiagnose Besitzer von PCs oder Laptops sind in der Regel mit regelmäßigen Fehlern bei ihrer Arbeit konfrontiert. Aber ein beträchtlicher Teil der Enthusiasten liebt es, Prozessoren, Grafikkarten zu übertakten, die Betriebsfrequenzen des Speichers zu überschätzen usw. Natürlich ist ein unterbrechungsfreier Betrieb in solchen Notsituationen nicht gewährleistet und Übertakter müssen beim Übertakten die Stabilität des übertakteten Geräts überprüfen. Prozessorprüfung- ein obligatorischer Schritt beim Übertakten der CPU. Der vorgeschlagene Artikel widmet sich lediglich der Frage der Überprüfung der Funktionsfähigkeit des Prozessors unter maximaler Belastung nach Beschleunigung. Dienstprogramm LinX 0.6 mit sehr einfache Schnittstelle Helfen Sie uns dabei.

Kürzlich gab es auf der Website einen Artikel darüber, in dem nur die Notwendigkeit einer CPU-Diagnose erwähnt wurde, es jedoch keine Erklärung gab. Heute habe ich beschlossen, diese Lücke zu schließen und das Verfahren zur Überprüfung des Prozessors zu beschreiben. Für Computerdiagnose Sie benötigen nur ein Dienstprogramm, das für maximale CPU-Belastung bei Rechenaufgaben ausgelegt ist. Der Name dieses kompakten Programms ist LinX. Im Moment ist das aktuelle LinX 0.6.5". Neben Stabilitätstests kann das Dienstprogramm auch als guter Benchmark verwendet werden.

Benutzerperspektive LinX 0.6 Sehr einfache und praktische Sache mit einer einfachen und intuitiven Benutzeroberfläche (russische und englische Version). Es unterstützt sowohl Intel- als auch AMD-CPUs. In den Einstellungen können Sie den 32/64-Bit-Betriebsmodus und die Anzahl der Threads auswählen, Intels HyperThreading-Technologie aktivieren oder deaktivieren, die Anzahl der Durchläufe festlegen, den Testfortschritt „live“ überwachen ... Automatisches Speichern des Satzes Prozessortestparameter ermöglicht das Testen mit denselben Einstellungen bei späteren Starts, beispielsweise beim schrittweisen Übertakten der CPU.


Die Oberfläche des Hauptprogrammfensters enthält nur wenige Steuerelemente. Zunächst interessieren uns die Parameter „Memory“ / „Memory“ und die Anzahl der Durchläufe „Number of times“ / „Run“. Für Computerdiagnose Es wird empfohlen, im ersten Parameter (die Schaltfläche „Alle“ neben „Speicher“) den gesamten verfügbaren Speicher auszuwählen und die „Anzahl der Male“ / „Läufe“ empirisch festzulegen: Führen Sie einen Lauf aus und berechnen Sie die erforderliche Anzahl der Läufe damit das Programm mindestens eine Stunde lang funktioniert. Wählen Sie im Menü „Einstellungen“ / „Einstellungen“ je nach installiertem Prozessor und Version den 32/64-Bit-Modus aus Betriebssystem. Um den Test zu starten/stoppen, verwenden Sie die Schaltflächen „Test“/„Stopp“ („Start“/„Stop“). Während des Tests zeigt die Testfortschrittsanzeige die seit dem Start verstrichene Zeit an und wenn der letzte Durchgang abgeschlossen ist, wird die Aufschrift „Abgeschlossen ohne Fehler in MM m SS s“ (oder „Abgeschlossen ohne Fehler in MM m SS) angezeigt s“ in der englischen Version der Benutzeroberfläche).

Beim Testen eines instabilen Systems über einen längeren Zeitraum können Fehler auftreten. Das Element „Bei Fehler stoppen“ in den Linx 0.6-Einstellungen stoppt die weitere Überprüfung des Prozessors. Dies kann sehr nützlich sein, wenn aufgrund von Fehlern auftreten CPU überhitzt. In einigen Fällen kann ein rechtzeitiger Teststopp erforderlich sein ein Leben retten zur getesteten CPU. Wenn Sie nach dem Starten des Dienstprogramms eine Temperatur gemessen haben, die nahe am kritischen Wert liegt oder diesen überschreitet, ist dies ein klares Signal, dass Sie dies tun müssen Kühler austauschen oder Beschleunigung reduzieren.

Benutzen LinX 0.6.5 als Benchmark Die Ergebnisse der Prozessorleistung werden in der Spalte „GFlops“ / „GFlops“ der Abschlusstabelle des Hauptprogrammfensters angezeigt. Ja für Intel Core i7-3770k, das auf 4,5 GHz übertaktet wurde, wird das Ergebnis ein Wert in der Region sein 110…115 GFlops abhängig von den Einstellungen. Nach mehreren Durchläufen wird die angegebene CPU höher platziert: Die Geschwindigkeit wird für jeden Durchlauf in der Tabelle angezeigt und die Statuszeile enthält Informationen über die Spitzenleistung (Maximum) in GFlops.

Übrigens, wenn Sie sich fragen CPU-Übertaktung Dann seien Sie verwirrt über die Zweckmäßigkeit, Technologie einzubeziehen Hyperthreading für Intel-CPU. Bei weitem nicht bei allen Aufgaben von HT kommt es zu einer Geschwindigkeitssteigerung, allerdings unterschätzt das mitgelieferte HT sehr oft die Übertaktungsfähigkeiten des „Steins“. Den zahlreichen Rezensionen nach zu urteilen, gibt es bei den meisten Spielen nicht den geringsten Anstieg der FPS durch HyperThreading – hier ist die „Spielbarkeit“ eher von der Grafikkarte abhängig.

Benchmark ist ein Maß für die maximale Leistung eines Computers, die in konventionellen Punkten ausgedrückt wird. Dadurch können Sie die Leistung verschiedener Computer oder desselben Computers beispielsweise nach Übertaktung oder Unterspannung vergleichen.

Benchmark und Stresstest sind nicht dasselbe. Sowohl beim Benchmark als auch beim Stresstest wird das System voll ausgelastet. Das Hauptziel des Benchmarkings besteht jedoch darin, die Leistung zu bewerten, und das Hauptziel eines Stresstests besteht darin, zu überprüfen, ob das System an seiner Auslastungsgrenze arbeiten kann, bzw. diese Grenze zu bestimmen. Obwohl einige Programme tatsächlich beide Funktionen kombinieren.

Der Benchmark kann für das System als Ganzes oder für seine einzelnen Komponenten durchgeführt werden: für den Zentralprozessor, die Grafikkarte, das I/O-System.

Linux verfügt über mehrere Programme zur Bewertung der CPU-Leistung, zum Beispiel: Sysbench, Stress-ng Und Phoronix-Testsuite. Aus ihnen Stress-ng Erfüllt in erster Linie die Funktionen eines Stresstests, zeigt jedoch die resultierenden Metriken an und eignet sich daher gut zur Bewertung und zum Vergleich der Systemleistung.

Benchmark im Sysbench

sysbench ist ein Dienstprogramm Befehlszeile. Es wurde entwickelt, um die Leistung von Servern mit stark ausgelastetem DBMS zu bewerten, eignet sich aber auch zum Benchmarking herkömmlicher Systeme.

Installation auf Ubuntu, Linux Mint, Debian, Kali Linux:

Sudo apt installieren Sysbench

Integrierte Tests:

  • fileio- Datei-I/O-Tests
  • Zentralprozessor- CPU-Leistungstests
  • Speicher- Testen der Geschwindigkeit von Speicherfunktionen
  • Threads- Testen der Leistung des Thread-Subsystems
  • Mutex- Mutex-Leistungstest

So führen Sie einen CPU-Leistungstest durch:

Sysbench-CPU-Lauf

Achten Sie darauf, wie das Programm startet: Am Anfang steht der Name des Tests, dann die Optionen (im ersten Beispiel gibt es keine) und dann der Befehl.

Das Programm verfügt über zwei Ausführungsgänge:

  • 10000 Operationen mit Zahlen
  • 10 Sekunden Ausführung

Je nachdem, was zuerst eintritt, wird das Programm entweder nach 10.000 Ereignissen oder nach 10 Sekunden beendet.

Moderne Prozessoren sind sehr produktiv und wenn das Programm sehr schnell abgeschlossen wird, können die Daten verfälscht werden. Bei der Bewertung der Prozessorleistung spielt beispielsweise das Throttling (Frequenz-Reset) eine Rolle. Die Drosselung beginnt aufgrund von Überhitzung oder Überschreitung der TDP. Diese Effekte werden nur bei großen Entfernungen zum Prozessor beobachtet. Wenn zum Beispiel der Test in einer Sekunde abgeschlossen ist und Sie erhalten haben N Verarbeitete Vorgänge bedeutet dies nicht, dass der Prozessor sie in 60 Sekunden ausführt 60*n Betrieb, da die Frequenz aufgrund von Überhitzung und Überschreitung der in der TDP festgelegten Wärmeableitungsgrenzen sinkt.

Für einen längeren Testlauf nutzen Sie die Optionen --cpu-max-prime Und -Zeit. Der erste legt die maximale Anzahl der durchgeführten Operationen fest und der zweite legt die maximale Benchmark-Zeit fest. Bei gleichzeitiger Nutzung von Optionen wird Vorrang eingeräumt -Zeit.

Moderne CPUs sind Multi-Core- und Multi-Thread-Prozessoren:

Default Sysbench läuft in einem Thread. Wenn Sie also alle Kerne Ihres Prozessors nutzen möchten, nutzen Sie die Option --threads. Ich habe 6 physische und 12 logische CPU-Kerne, daher verwende ich 12, um sicherzustellen, dass alle CPUs funktionieren.

Bei Verwendung der Option --cpu-max-prime, je kürzer die Programmabschlusszeit, desto produktiver ist der Zentralprozessor:

Sysbench cpu --threads=12 --cpu-max-prime=100000 ausgeführt

Das Programm hat die Arbeit zu schnell abgeschlossen – in 10 Sekunden ist es unwahrscheinlich, dass der Prozessor Zeit für eine ernsthafte Drosselung hatte. Daher eignet sich der Test mit diesen Werten zur Beurteilung von Spitzenleistungen auf einer kurzen Distanz.

Ergebnisse erhalten:

CPU-Geschwindigkeit: Ereignisse pro Sekunde: 538,23 Allgemeine Statistiken: Gesamtzeit: 10,0188 s Gesamtzahl der Ereignisse: 5393 Latenz (ms): Min.: 19,85 Durchschnitt: 22,27 Maximal: 30,56 95. Perzentil: 23,10 Summe: 120125,61 Thread-Fairness: Ereignisse (Durchschnitt/ stddev): 449,4167/4,11 Ausführungszeit (Durchschnitt/stddev): 10,0105/0,01

CPU-Geschwindigkeitsereignisse pro Sekunde bedeutet die Anzahl der Operationen, die pro Sekunde im Zentralprozessor ausgeführt werden – je höher der Wert, desto produktiver das System.

Allgemeine Statistiken zur Gesamtzeit bedeutet die Gesamtausführungszeit der Operationen.

Allgemeine Statistik zur Gesamtzahl der Ereignisse bedeutet die Gesamtzahl der abgeschlossenen Ereignisse.

Wenn das System zu schnell herunterfährt, können Sie den Wert beispielsweise auf zweihunderttausend Ereignisse erhöhen:

Sysbench cpu --cpu-max-prime=200000 ausgeführt

Eine weitere Möglichkeit, die CPU-Leistung unter anhaltender Last auf Drosselung zu prüfen und zu bewerten, besteht darin, die Ausführungszeit festzulegen. Im folgenden Beispiel ist die Zeit auf 300 Sekunden eingestellt.

Sysbench cpu --threads=12 --time=300 ausgeführt

Ich habe bei der Verwendung Optionen -Zeit Und --cpu-max-prime CPU-Geschwindigkeitsereignisse pro Sekunde unterscheiden sich um Dutzende Male – offenbar liegt entweder ein Fehler im Programm vor oder das Programm rechnet nach anderen Regeln.

Benchmark in der Phoronix-Testsuite

Installiere das Programm:

Sudo apt installiert die Phoronix-Testsuite

Ausführen – zum ersten Mal müssen Sie die Lizenzvereinbarung akzeptieren, damit das Programm um Erlaubnis bittet, anonyme Statistiken zu senden:

Phoronix-Testsuite-Liste der verfügbaren Suiten

Der vorherige Befehl listet die verfügbaren Benchmarks auf.

Verfügbare Testsuiten in Phoronix Test Suite v8.0.1

Pts/Audio-Encoding – Audio-Encoding-System Pts/Schach – Schachtest-Suite-Prozessor Pts/Compilation – Zeitgesteuerter Code-Kompilierungsprozessor Pts/Compiler – Compiler-Prozessor Pts/Komprimierung – Zeitgesteuerter Dateikomprimierungsprozessor Pts/Computational – Computational Test Suite System Pts/Computational -biology – Computational Biology Test Suite Prozessor pts/cpu – CPU/Prozessor Suite Prozessor pts/cryptography – Kryptographie Prozessor pts/daily-kernel-tracker – Daily Kernel Tracker System pts/daily-system-tracker – Daily System Tracker System pts/database - Datenbank-Testsuite-System pts/desktop-graphics - Desktop-Grafiksystem pts/disk - Festplattentest Suite Disk pts/encoding - Encoding System pts/favorites - Favorites System * pts/gaming - Gaming System pts/gaming-closed - Closed-Source Gaming System * pts/gaming-free - Free Software Gaming System pts/gui-toolkits - GUI Toolkits Grafiken pts/ioquake3-games – Spiele mit der ioquake3-Engine System pts/iqc – Bildqualitätsvergleich Suite Grafiken pts/java – Java-System pts/java-opengl – Java OpenGL-System pts/kernel – Kernelsystem pts/linux-system – Linux System System pts/machine-learning – Machine Learning System pts/memory – Memory Test Suite Memory pts/mesa – Mesa Test Suite Graphics pts/motherboard – Motherboard System pts/multicore – Multi-Core Processor pts/netbook – Netbook Test Suite System pts/network – Networking Test Suite Network pts/nevada – OpenSolaris Nevada Test Suite System pts/opencl – OpenCL System pts/opengl-demos – OpenGL Demos Test Suite System pts/opengl-workstation – OpenGL Workstation Test Suite System pts/pts-desktop -live – PTS Desktop Live System pts/ray-tracing – Ray-Tracing Test Suite System pts/server – Server-Motherboard-System pts/ue4 – Unreal Engine 4 Tech Demos auf Linux-Grafik pts/unigine – Unigine Test Suite Graphics * pts/universe - Universe Test Suite System pts/universe-cli - Universe CLI Test Suite System * pts/universe-x - Universe X Test Suite System pts/video-encoding - Video Encoding System pts/workstation - Workstation System pts/workstation-graphics - Workstation Grafik Grafik pts/xrender – Testen der X-Render-Erweiterung Grafiksystem/Sammlung – Sammelsystem

Teilweise unterstützte Sets sind mit einem Sternchen gekennzeichnet.

So führen Sie den CPU-Leistungsbewertungslauf aus:

Phoronix-Testsuite führt PTS/CPU aus

Bitte beachten Sie, dass pts/cpu und andere Benchmarks mehrere Gigabyte Speicherplatz beanspruchen. Beispielsweise lädt pts/cpu etwa 3 GB an Daten herunter und belegt etwa 7 GB Speicherplatz (im Home-Verzeichnis des Benutzers).

Informationen zum Überwachen der aktuellen Frequenz und Temperatur des Prozessors unter Linux finden Sie unter.

Ich habe den Linpack-Test durchgeführt und dachte: Ist es an der Zeit, die Wärmeleitpaste auf meinem Laptop zu wechseln?

Ja, nach den Ergebnissen mehrerer Tests hintereinander (ich werde den Artikel nicht mit Bildern überladen) ist klar, dass der Prozessor drosselt (Zyklen überspringt und die Frequenz beim Erhitzen zurücksetzt), aber wie schnell startet das? Dies tun?

CPU-Stresstest im Linux-Terminal

Nachdem ich diese Frage gestellt und im Internet nach Dienstprogrammen gesucht hatte, wurde mir klar, dass das Hauptproblem bei der Lösung der von mir gestellten Aufgabe der gleichzeitige Start von mindestens ein paar Dienstprogrammen und große Augen in zwei Fenstern war ... Und ich kam zu dem Schluss, dass Für mich ist die Konsolenversion besser geeignet als mehrfarbige Fenster geöffneter Programme.

Ich habe mit Sysbench begonnen:

sudo apt install sysbench

sysbench --num-threads=4 --test=cpu --cpu-max-prime=100000 ausführen

  • --num-threads=4- Das ist die Anzahl der Threads, ich habe einen Dual-Core-Intel® Core™ i7-640M mit vier Threads, also 4;
  • --cpu-max-prime=100000- Dies ist die maximale Anzahl der durchgeführten Operationen, ich habe sie auf 100.000 gesetzt, weil Der Standardwert ist 10000, wodurch der Test zu früh beendet wird.

Dann bin ich zu Linpack gewechselt. Da ich einen Prozessor von Intel habe und ein gewisses Maß an Faulheit habe (Faulheit ist der Motor des Fortschritts), habe ich das fertige Intel Linpack genommen, heruntergeladen und entpackt, nachdem ich das Linpack-Verzeichnis in meinem Home-Verzeichnis erstellt hatte:

mkdir ./linpack
cd ./linpack
wget http://registrationcenter-download.intel.com/akdlm/irc_nas/9752/l_mklb_p_2018.3.011.tgz
tar -xvzf ./l_mklb_p_2018.3.011.tgz

Für AMD-Prozessoren Ich würde diese Option nicht ausprobieren, da der Intel-Compiler Lesezeichen einfügt, die den Prozessor überprüfen, und wenn es nicht Intel ist ... nun, denken Sie an hundert oder zwei zusätzliche Anweisungen, der Prozessor wird ausgeführt und verliert offensichtlich an Leistung. Für AMD ist es besser, Linpack aus Quellen wie diesen zu erstellen. In diesem Artikel werde ich nicht auf das Erstellen aus Quellen eingehen – lesen Sie die README-Datei im Quellcode.

Kommen wir zurück zu Intels Linpack. Es gibt viele zusätzliche Dinge, die ich nicht benötige, aber was ich bezüglich der Version 2018.3.011 beachten muss. Ich gehe sofort in das gewünschte Verzeichnis, um später keine langen Befehle einzugeben:

cd ./l_mklb_p_2018.3.011/benchmarks_2018/linux/mkl/benchmarks/linpack

Da Intels Linpack standardmäßig zum Testen von Server-Xeons konzipiert ist, erstellen wir unsere eigene Datei, die als Eingabeoptionen verwendet wird. Reduzieren Sie einfach die Anzahl der Tests, sonst haben wir es satt, „ein paar Tage“ auf das zu warten Test abschließen. Ich habe Linux Mint LMDE 3, also verwende ich den xed-Texteditor, und er gefällt mir wegen der größeren Funktionalität, besonders wenn ich ihn als Root ausführe – er ändert seine Farbe in Rot. Und so erstellen wir im selben Verzeichnis, in das wir verschoben haben, eine Datei, zum Beispiel my_test:

Und kopieren Sie den folgenden Inhalt in die erstellte Datei:

Shared-Memory-Version der Intel(R) Distribution für LINPACK* Benchmark. *Andere Namen und Marken können als Eigentum anderer beansprucht werden.
Beispieldatendatei lininput_xeon64.
5 # Anzahl der Tests
1000 2000 5000 10000 20000 # Problemgrößen
1000 2000 5008 10000 20000 # Leitmaße
4 2 2 2 1 # Mal, um einen Test durchzuführen
4 4 4 4 4 # Ausrichtungswerte (in KBytes)

Nun, tatsächlich starten wir Linpack mit der erstellten Datei:

./xlinpack_xeon64 -i ./my_test

./xlinpack_xeon64 ./my_test

Sie können auch stress-ng oder stress verwenden, aber das löst das von mir gestellte Problem immer noch nicht. Diese Dienstprogramme zeigen mir nicht von Anfang an die Ausgabe von Temperatur, Frequenzen und Zeit an.

Die Temperatur kann durch Sensoren angezeigt werden – mehr zur Installation dieses Dienstprogramms. Und dieser Nutzen wird bei der weiteren Betrachtung meiner Frage benötigt. Linux ist großartig und leistungsstark: Dieselbe Aufgabe kann auf unterschiedliche Weise gelöst werden. Ich war zu faul, mich mit C zu befassen, und habe den fehlenden Teil für mich in BASH geschrieben, weil es nicht so viele Zeilen gab. Ohne installierte Sensoren funktioniert mein Skript nicht. Die Behebung der Drosselung habe ich natürlich nicht geschrieben – sie wird durch das Zurücksetzen der Frequenz und Temperatur sowieso sichtbar. Hier ist das Skript selbst:

#!/bin/bash
out=0 # Testprozesskontrollvariable
pid_test="tty" # PID des Testprozesses (ein vorhandenes Verzeichnis zur Ausführung ohne Argumente erstellt)
cpus_num=$(cat /proc/cpuinfo | grep -ci "processor") # Anzahl der Prozessoren/Kerne/Threads
echo -en "\033[?25l" 1>&2 # Cursor ausblenden
echo -en "\033[^:]*: //g" | sort -u # Ausgabeprozessormodell
echo -en "\033=$(sensors | sed "/Core ""$i""/!d;s/.*crit = +\(.*\)[.]°C).*/\1/ ")
if [ -n "$(cpu_crit_temp[i])" ]
Dann
sei cpu_red_temp[i]=cpu_crit_temp[i]-10
sei cpu_yel_temp[i]=cpu_crit_temp[i]-30
cpu_min_temp[$i]=1000
cpu_max_temp[$i]=0
fi
Erledigt
start_time=$(cat /proc/uptime | sed "s/[.] .*$//") # Startzeit
if [ -n "$1" ]
Dann
script_pid="$$"
(if ! $@ > "$0_out" 2>&1 # Testdatei ausführen
Dann
kill -s SIGABRT $script_pid # signalisiert, dass die Ausführung des Hauptskripts fehlschlägt
fi 2>/dev/null)&
pid_test="$!" # PID des Testprozesses
fi
while (true) # Temperaturregelung
Tun
für ((i=0; ich<$cpus_num; i++))
Tun
cpu_freq[$i]=$(cat /sys/devices/system/cpu/cpu$(i)/cpufreq/scaling_cur_freq | sed "s/...$//")
cpu_temp[$i]=$(sensors | sed "/Core ""$i""/!d;s/.*+\(.*\)[.]°C[ \t]*(.*/\ 1/")
if [ -n "$(cpu_temp[i])" ]
Dann
(($(cpu_temp[i])< ${cpu_min_temp[i]})) && cpu_min_temp[$i]=${cpu_temp[i]}
if (($(cpu_temp[i]) > $(cpu_max_temp[i])))
Dann
cpu_max_temp[$i]=$(cpu_temp[i])
time_max[$i]=$(cat /proc/uptime | sed "s/[.] .*$//")
sei time_max[i]=time_max[i]-start_time
fi
if (($(cpu_temp[i]) > $(cpu_red_temp[i])))
Dann
echo -en "cpu$(i):\t"
echo -en "\033)"
echo -en "\033)"
echo -en "\033)"
echo -en "\033) > $(cpu_yel_temp[i])))
Dann
echo -en "cpu$(i):\t"
echo -en "\033)"
echo -en "\033)"
echo -en "\033)°C; max: "
echo -en "\033)"
echo -en "\033)sec)"
anders
echo -en "cpu$(i):\t"
echo -en "\033)"
echo -en "\033)"
echo -en "\033)°C; max: "
echo -en "\033)"
echo -en "\033)sec)"
fi
anders
echo -en "cpu$(i):\t"
echo -en "\033)"
echo -en "\033 .*$//")
let time=time-start_time
echo -en "Zeit:\t$time Sek."
[ ! -d "/proc/$(pid_test)" ] && break # Beenden, wenn der Test beendet ist ( Der beste Weg Steuerung über Comm und cmdline, aber... zu faul)
[ "$out" != "0" ] && break # Exit bei Testfehler
echo -en "\033[$(i)A\r" 1>&2 # Cursor nach oben $i Zeilen und zum Zeilenanfang bewegen
Sleep 0.1 # Pause, damit die Frequenzausgabe nicht zu stark springt
Erledigt
Echo „“
echo -en "\033[?25h" 1>&2 # Cursor aktivieren
if [[ "$out" == "0" && -n "$1" ]]
Dann

rm -fR "$0_out"
Ausgang 0
elif [[ "$out" == "1" && -n "$1" ]]
Dann
kill -9 "$pid_test" 1>/dev/null 2>/dev/null
Katze „$0_out“ | sed "/^$/d;/Beispieldaten/d;/CPU-Frequenz/d;/Parameter werden eingestellt/,/Datenausrichtungswert/d"
rm -fR "$0_out"
Ausgang 1
elif[ "$out" == "1" ]
dann Ausfahrt 1
elif[ "$out" == "2" ]
Dann
echo -en "\033)

mob_info