Continuamos hablando sobre herramientas para evaluar el rendimiento de la CPU en máquinas Linux. Hoy en el material: temci, uarch-bench, likwid, perf-tools y llvm-mca.
Más benchmarks:
Foto — — Unsplash
Esta es una herramienta para evaluar el tiempo de ejecución de dos programas. En esencia, permite comparar el tiempo de ejecución de dos aplicaciones. El autor de la utilidad es un estudiante de Alemania, Johannes Bechberger, quien la desarrolló como parte de su trabajo de licenciatura en 2016. Hoy en día, la herramienta bajo la licencia GNU General Public License.
Johannes quería crear una herramienta que permitiera medir el rendimiento del sistema computacional en un entorno controlado. Por eso, una de las características principales de temci es la capacidad de configurar el entorno de prueba. Por ejemplo, : cambiar la configuración del controlador de frecuencia de la CPU, deshabilitar y las cachés L1 y L2, desactivar el modo turbo en procesadores Intel, entre otros. Para el benchmarking, temci utiliza herramientas , y .
Así es como se ve el funcionamiento de la utilidad en el primer caso:
# compare the run times of two programs, running them each 20 times
> temci short exec "sleep 0.1" "sleep 0.2" --runs 20
Benchmark 20 times [####################################] 100%
Report for single runs
sleep 0.1 ( 20 single benchmarks)
avg_mem_usage mean = 0.000, deviation = 0.0
avg_res_set mean = 0.000, deviation = 0.0
etime mean = 100.00000m, deviation = 0.00000%
max_res_set mean = 2.1800k, deviation = 3.86455%
stime mean = 0.000, deviation = 0.0
utime mean = 0.000, deviation = 0.0
sleep 0.2 ( 20 single benchmarks)
avg_mem_usage mean = 0.000, deviation = 0.0
avg_res_set mean = 0.000, deviation = 0.0
etime mean = 200.00000m, deviation = 0.00000%
max_res_set mean = 2.1968k, deviation = 3.82530%
stime mean = 0.000, deviation = 0.0
utime mean = 0.000, deviation = 0.0
Según los resultados del benchmarking, el sistema genera con diagramas, tablas y gráficos, lo que diferencia a temci de soluciones similares.
Entre las desventajas de temci se destaca su "juventud". Debido a esto, las configuraciones de hardware y software. Por ejemplo, es difícil de ejecutar en macOS, y en sistemas con procesadores ARM algunas funciones no están disponibles. En el futuro, la situación podría cambiar, ya que el autor está desarrollando el proyecto activamente, y el número de estrellas en GitHub está aumentando gradualmente; no hace mucho, temci incluso en Hacker News.
Una utilidad para evaluar el rendimiento de funciones de bajo nivel de la CPU, desarrollada por el ingeniero Travis Downs. (). Recientemente, él ha estado escribiendo en su blog en GitHub Pages, donde habla sobre herramientas de benchmarking y otras cosas relacionadas. En general, uarch-bench apenas está comenzando a ganar popularidad, pero ya es bastante mencionado por los residentes de Hacker News en hilos temáticos como la herramienta preferida para benchmarking.
Uarch-bench permite evaluar el rendimiento de la memoria, la velocidad de carga paralela de datos y el trabajo con la limpieza de . Los resultados de los benchmarks generados por el programa se pueden encontrar al final de la página.
Cabe destacar que uarch-bench, al igual que temci, la función Intel Turbo Boost (que aumenta automáticamente la frecuencia del procesador bajo carga) para que los resultados de las pruebas sean consistentes.
Por ahora, el proyecto se encuentra en las primeras etapas de desarrollo, por lo que uarch-bench no cuenta con documentación detallada y puede haber errores en su funcionamiento — por ejemplo, con el arranque en Ryzen. Además, solo se admiten benchmarks para arquitecturas x86. El autor promete agregar más funcionalidad en el futuro e invita a unirse al desarrollo.
Es un conjunto de herramientas para evaluar el rendimiento de máquinas Linux con procesadores Intel, AMD y ARMv8. Fue creado bajo la égida del Ministerio Federal de Educación e Investigación de Alemania en 2017 y se entregó al open source.
Entre las herramientas de likwid se destaca likwid-powermeter, que muestra información de los registros RAPL sobre la potencia consumida por el sistema, así como likwid-setFrequencies — que permite controlar la frecuencia del procesador. La lista completa se puede .
El instrumento es utilizado por ingenieros que realizan investigaciones en el campo de HPC. Por ejemplo, el grupo de especialistas del Centro de Cálculo Regional de la Universidad de Erlangen-Núremberg (RRZE) en Alemania. También participa activamente en el desarrollo de este conjunto de herramientas. perf-tools

Foto — — Unsplash
es obra de Brendan Gregg. Él es uno de los desarrolladores del marco de trazado dinámico para depuración de aplicaciones en tiempo real. En la base de perf-tools están las subsistemas del núcleo perf_events y ftrace. Sus utilidades permiten analizar la latencia de entrada/salida (iosnoop), rastrear los argumentos de las llamadas al sistema (unccount, funcslower, funcgraph y functrace) y recopilar estadísticas de 'aciertos' en la caché de archivos (cachestat). En este último caso, el comando es el siguiente:
Alrededor de la herramienta se ha formado una comunidad bastante amplia (
# ./cachestat -t
Counting cache functions... Output every 1 seconds.
TIME HITS MISSES DIRTIES RATIO BUFFERS_MB CACHE_MB
08:28:57 415 0 0 100.0% 1 191
08:28:58 411 0 0 100.0% 1 191
08:28:59 362 97 0 78.9% 0 8
08:29:00 411 0 0 100.0% 0 9
casi 6 mil estrellas en GitHub). Y hay empresas que utilizan activamente perf-tools, por ejemplo . Pero la herramienta continúa siendo mejorada y modificada (aunque últimamente las actualizaciones son bastante raras). Por lo tanto, pueden surgir errores en su funcionamiento; el autor menciona que a veces perf-tools provoca un kernel panic.
Una utilidad que pronostica cuántos recursos computacionales requerirá el código máquina en diferentes CPU. Ella Instrucciones Por Ciclo () y la carga en el hardware que genera cada aplicación.
llvm-mca fue presentado en 2018 como parte del proyecto , que se dedica al desarrollo de un sistema universal para el análisis, transformación y optimización de programas. Se sabe que los autores de llvm-mca se inspiraron en la solución para análisis de rendimiento de software y buscaban crear su alternativa. Y según los usuarios, los resultados de la herramienta (su formato y cantidad) realmente recuerdan a IACA — un ejemplo . Sin embargo, llvm-mca solo acepta , por lo que probablemente necesitarás usar convertidores para trabajar con ella.
De qué hablamos en nuestros blogs y redes sociales:
![]()
![]()
![]()
![]()
![]()
En 1cloud.ru ofrecemos un servicio gratuito de «». Puedes gestionar los registros DNS desde un panel de control único.
Fuente: habr.com
