¿Existe una herramienta de código abierto para medir el rendimiento de la CPU?

21

Lo he usado muchas veces abpara medir el rendimiento web, hdparmpara medir el rendimiento del disco duro y netperfpara medir el rendimiento de la red.

Pero no encontré ninguna herramienta para medir el rendimiento de la CPU.

¿Conoces una herramienta que permita medir el rendimiento de la CPU? Estoy más específicamente buscando medir Gflops.

Coren
fuente
2
vea " serverfault.com/questions/88357/estimate-flops-in-linux " para medir gflops y puede usar el comando mpstat o sar para el rendimiento de la CPU
harish.venkat
1
sar y mpstat indica actividad de la CPU, no rendimiento de la CPU. La pregunta predeterminada del servidor indica usar LINPACK, que no es de código abierto.
Coren el
relacionado: askubuntu.com/questions/634513/…
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

Respuestas:

10

Debería echar un vistazo a la página de Wikipedia sobre benchmarking , que ofrece bastantes herramientas de referencia, incluidas las CPU que funcionarán en Linux. LinPack es gratis, pero es difícil de compilar. Pero ciertamente puedes mirar a NBench y algunos otros en la lista.

Karlson
fuente
NBench es bueno, pero tiene 15 años de código. Necesitamos algo nuevo El enlace está obsoleto por cierto.
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
fuente
1
¿Sería 43-37 = 6 GigaFlops? No veo cómo un incremento entero en un shell se relaciona con el rendimiento de coma flotante.
Anthon
El objetivo general era "medir el rendimiento de la CPU". Más tarde menciona Gflops, pero creo que en realidad es una tangente equivocada. Si Gflops era el verdadero objetivo, preguntar sobre el rendimiento de la CPU era un error.
JohnMudd
Manera más rápida de llegar a la cantidad que realmente después, es decir, segundos que han pasado : DATE=$(date +%s); i=0; while (( i < 1000000 )); do (( i ++ )); done; echo $(( $(date +%s)-DATE ))
xenithorb
1
Buen punto, debería haber actualizado esto antes. Aquí está mi enfoque actual: tiempo (i = 0; while ((i <1000000)); do ((i ++)); hecho)
JohnMudd
1
Esto no es 6 gigaflops, esto es ~ 0.17 megabashincrements. Y, mi macbook posee todo:( i=0 ; while (( i < 1000000 )); do; (( i ++ )); done; ) 1.33s user 0.00s system 99% cpu 1.337 total
Steven Lu
1

stress-ng es una herramienta simple que puede enfatizar y comparar el cpus.

Por ejemplo, probado 1 CPU

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

stress-ng: info: [20288] predeterminado a 86400 segundos por estresor

stress-ng: info: [20288] despachando cerdos: 1 CPU

stress-ng: info: [20288] ejecución exitosa completada en 13.93s

michaelbn
fuente
Creo que aconsejar un programa de pruebas de estrés para comparar es engañoso: hay una gran diferencia entre comparar y estresar una CPU.
Paradoja