Gibt es ein Open-Source-Tool zur Messung der CPU-Leistung?

21

Ich habe viele Male abzum Messen der Webleistung, hdparmzum Messen der Festplattenleistung und netperfzum Messen der Netzwerkleistung verwendet.

Ich habe jedoch keine Tools zur Messung der CPU-Leistung gefunden.

Kennen Sie ein Tool, mit dem Sie die CPU-Leistung messen können? Ich versuche genauer, Gflops zu messen.

Coren
quelle
2
siehe „ serverfault.com/questions/88357/estimate-flops-in-linux “ für GFLOPS Messen und Sie können mpstat oder sar - Befehl für die CPU - Leistung verwenden
harish.venkat
1
sar und mpstat geben die CPU-Aktivität an, nicht die CPU-Leistung. Die Serverfehlerfrage zeigt an, dass LINPACK verwendet werden soll, das nicht Open Source ist.
Coren
related: askubuntu.com/questions/634513/…
Ciro Santilli am

Antworten:

10

Sie sollten einen Blick auf die Wikipedia-Seite über Benchmarking werfen. Dort finden Sie einige Benchmark-Tools, einschließlich der CPU-Tools, die unter Linux funktionieren. LinPack ist kostenlos, aber ein Problem beim Kompilieren. Aber Sie können sich sicherlich NBench und einige andere in der Liste ansehen .

Karlson
quelle
NBench ist gut, aber 15 Jahre alter Code. Wir brauchen etwas Neues. Der Link ist übrigens abgestanden.
Konrad Gajewski
3
$ date; i=0; while (( i < 1000000 )); do (( i ++ )); done; date
Tue Jul 15 11:26:37 EDT 2014
Tue Jul 15 11:26:43 EDT 2014
$
JohnMudd
quelle
1
Wäre das 43 - 37 = 6 GigaFlops? Ich verstehe nicht, wie sich ein ganzzahliges Inkrement in einer Shell auf die Gleitkommaleistung auswirkt.
Anthon
Das allgemeine Ziel war "CPU-Leistung messen". Später werden Gflops erwähnt, aber ich denke, das ist tatsächlich eine fehlgeleitete Tangente. Wenn Gflops das wahre Ziel war, war es ein Fehler, nach der CPU-Leistung zu fragen.
JohnMudd
Schnellerer Weg, um zu der Nummer zu gelangen, nach der Sie wirklich DATE=$(date +%s); i=0; while (( i < 1000000 )); do (( i ++ )); done; echo $(( $(date +%s)-DATE ))
suchen
1
Guter Punkt, ich hätte dies früher aktualisieren sollen. Hier ist mein aktueller Ansatz: time (i = 0; while ((i <1000000)); do ((i ++)); done)
JohnMudd
1
Dies sind keine 6 Gigaflops, dies sind ~ 0,17 Megabashinkremente. Und mein MacBook besitzt alle:( i=0 ; while (( i < 1000000 )); do; (( i ++ )); done; ) 1.33s user 0.00s system 99% cpu 1.337 total
Steven Lu
1

stress-ng ist ein einfaches Tool, mit dem der cpus gestresst und bewertet werden kann.

Zum Beispiel getestet 1 CPU

stress-ng -c 1 --cpu-ops 5000

stress-ng: info: [20288] Standardmäßig 86400 Sekunden pro Stressor

stress-ng: info: [20288] Versand von Schweinen: 1 CPU

stress-ng: info: [20288] erfolgreicher Lauf in 13.93s abgeschlossen

michaelbn
quelle
Ich halte es für irreführend, ein Stresstestprogramm zum Benchmarking zu empfehlen: Es gibt einen großen Unterschied zwischen Benchmarking und Belastung einer CPU.
Paradox