Utilidad de benchmarking de CPU para Linux

66

Estoy buscando una utilidad que compare el rendimiento de la CPU en instancias de subprocesos simples y múltiples. En la actualidad tengo un equipo antiguo con una CPU de doble núcleo (E7500) a 3.6 Ghz y estoy buscando reemplazarlo con una CPU de cuatro núcleos (Q9400) a 3.2 Ghz. Quiero ver si notaré una mejora en el rendimiento con los 2 núcleos adicionales (aunque con una caída en la velocidad central). Veré las CPU con el mismo FSB (400Mhz) y el tamaño de caché es el mismo por CPU (1.5MB) y por lo que vale tengo 4GB de RAM (con potencial para actualizar a 6GB)

Mi hijo usa principalmente la PC para jugar TF2 (que todavía estoy tratando de trabajar en Linux) y también la uso para codificar algunos videos (MP4 a DVD)

Estoy pensando que podría estar mejor con el quad core, pero cualquier comentario sería apreciado.

gordo
fuente
2
Hay Geekbench que se puede comparar CPUs (ya hay resultados de las pruebas existentes para el E7500 y el Q9400 , aunque muchos están en drásticamente diferentes configuraciones, que tendrán diferentes velocidades de bus etc
Wilf

Respuestas:

88

En realidad, hay una herramienta llamada como sysbench.

Puedes instalarlo con sudo apt-get install sysbench

Para el benchmarking de CPU puedes hacer como

sysbench --test=cpu --cpu-max-prime=20000 run

donde 20000 es como el recuento máximo de eventos.

rɑːdʒɑ
fuente
77
--cpu-max-prime=20000es opcional, siendo el valor por defecto 10000. Sugiero mantener el valor predeterminado y jugar con él en su --max-requestslugar (que es el número de operaciones realizadas)
MestreLion
11
También tenga en cuenta que, de forma predeterminada, esta es una prueba de subproceso único. Para probar N núcleos, puede usar --num-threads=Ny comparar resultados utilizando la salida de estadísticas por solicitud .
MestreLion
1
¿Hay algún lugar para comparar la salida para obtener un rendimiento relativo?
jjxtra
31

Alternativamente, uno puede usar stress-ng. Tiene una prueba de esfuerzo de la CPU como una de las muchas pruebas de estrés integradas en la herramienta. La prueba de esfuerzo de la CPU contiene muchos métodos diferentes de esfuerzo de la CPU que cubren números enteros, coma flotante, operaciones de bits, cómputo mixto, cómputo principal y una amplia gama de cálculos.

Instalar usando:

sudo apt-get install stress-ng

Para ver los métodos de estrés relacionados con la CPU, use:

stress-ng --cpu-method which

Para comparar, por ejemplo, el producto de matriz durante 60 segundos en 4 subprocesos de CPU, use:

stress-ng --cpu 4 --cpu-method matrixprod  --metrics-brief --perf -t 60
stress-ng: info:  [15876] dispatching hogs: 4 cpu
stress-ng: info:  [15876] successful run completed in 60.00s (1 min, 0.00 secs)
stress-ng: info:  [15876] stressor      bogo ops real time  usr time  sys time   bogo ops/s   bogo ops/s
stress-ng: info:  [15876]                          (secs)    (secs)    (secs)   (real time) (usr+sys time)
stress-ng: info:  [15876] cpu              71657     60.00    239.60      0.00      1194.25       299.07
stress-ng: info:  [15876] cpu:
stress-ng: info:  [15876]            885,244,279,148 CPU Cycles                    14.75 B/sec
stress-ng: info:  [15876]          1,289,303,858,968 Instructions                  21.49 B/sec (1.456 instr. per cycle)
stress-ng: info:  [15876]            201,499,961,692 Cache References               3.36 B/sec
stress-ng: info:  [15876]                    790,424 Cache Misses                  13.17 K/sec ( 0.00%)
stress-ng: info:  [15876]            157,689,508,544 Branch Instructions            2.63 B/sec
stress-ng: info:  [15876]              1,232,539,732 Branch Misses                 20.54 M/sec ( 0.78%)
stress-ng: info:  [15876]              5,755,605,036 Bus Cycles                    95.92 M/sec
stress-ng: info:  [15876]            817,296,440,876 Total Cycles                  13.62 B/sec
stress-ng: info:  [15876]                      8,532 Page Faults Minor            142.19 sec  
stress-ng: info:  [15876]                          0 Page Faults Major              0.00 sec  
stress-ng: info:  [15876]                        220 Context Switches               3.67 sec  
stress-ng: info:  [15876]                          0 CPU Migrations                 0.00 sec  
stress-ng: info:  [15876]                          0 Alignment Faults               0.00 sec  
Colin Ian King
fuente
3
"¡No se puede localizar el paquete stress-ng!"
Ehsan M. Kermani
1
Si tiene una versión anterior, stress-ng no estará disponible desde el archivo. Sin embargo, están empacados en ppa: colin-king / white
Colin Ian King
1
Desde la página de manual de stress-ng: "stress-ng también puede medir las tasas de rendimiento de prueba; esto puede ser útil para observar los cambios de rendimiento en diferentes versiones del sistema operativo o tipos de hardware. Sin embargo, nunca se ha pensado para ser utilizado como un punto de referencia preciso conjunto de pruebas, así que NO lo use de esta manera ".
Michael Franzl
3
Como autor de stress-ng, será mejor que explique esto. stress-ng es lo suficientemente bueno como para obtener algunos resultados comparativos de referencia, pero no se ha calibrado a fondo para decir cuánta desviación hay en cada estresor específico. Por lo tanto, sugiero ejecutar un estresor de estrés varias veces y ver cuánta variación hay en una prueba de estrés específica, y si no varía mucho, entonces puede considerarse lo suficientemente confiable como un punto de referencia para ese caso de uso específico. Todo depende de lo ruidoso / ocupado que esté un sistema, qué tan bien funcione la E / S, si se intercambia, etc.
Colin Ian King
1
Comparando stress-ngy sysbench, uno me dice que el sistema A es más rápido (125%), el otro me dice que el sistema B es más rápido (140%), ¿cuál es el correcto?
WM
10

phoronix-test-suite

sudo apt-get install phoronix-test-suite
phoronix-test-suite list-available-suites
# Chose one, and run it.
phoronix-test-suite run pts/cpu    

Compara varios casos de uso intensivo de CPU en el mundo real, como compresión, cifrado y bases de datos

Tenga en cuenta que pts/cpuy otros puntos de referencia ocupan unos pocos gigabytes de espacio en disco. Esto podría implicar que tienen cargas de trabajo más realistas.

Probado en Ubuntu 16.10.

Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
fuente
2
@downvoters por favor explique :-)
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
2
Gracias. Me ahogué en las opciones de prueba, usando build-suite en mi primera ronda con phoronix.
andersoyvind
1
no está en Debian 9, pero aún puede descargar el .deb desde phoronix-test-suite.com/?k=downloads y ejecutarsudo apt install ./phoronix-test-suite(...).deb
hanshenrik
1
Una cosa que debe mencionarse al describir el PTS es el tamaño de sus puntos de referencia. La ejecución de los pts/cpupuntos de referencia mencionados descarga aproximadamente 3 GB de datos y utiliza aproximadamente 7 GB de espacio en disco (en el directorio de inicio del usuario).
stefanct
De acuerdo, si está buscando un punto de referencia simple, entonces no quiere phoronix-test-suite, es enorme, y sigue pidiendo descargar más y más dependencias para ejecutar pruebas. (Estoy seguro de que es muy completo cuando realmente quieres esto)
Jamie Pate