Benchmarks para servidores en Linux: una selección de herramientas abiertas

Seguimos hablando de 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 puntos de referencia:



Fotos - Lukas Blazek - Unsplash



temci


Esta es una herramienta para estimar el tiempo de ejecución de dos programas. De hecho, le permite comparar el tiempo de ejecución de dos aplicaciones. La utilidad fue escrita por un estudiante de Alemania, Johannes Bechberger, quien la desarrolló como parte de su trabajo de pregrado en 2016. Hoy, la herramienta está licenciada bajo la Licencia Pública General de GNU.

Johannes quería crear una herramienta que midiera el rendimiento de un sistema informático en un entorno controlado. Por lo tanto, una de las principales características de temci es la capacidad de configurar un entorno de prueba. Por ejemplo, puede : cambiar la configuración del administrador de control de frecuencia de la CPU, deshabilitar el hiperprocesamiento y los cachés L1 y L2, desactivar el modo turbo en los procesadores Intel y otros.

Así es como funciona 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 

Con base en los resultados de la evaluación comparativa, el sistema genera un informe conveniente con diagramas, tablas y gráficos, que distingue el tema de soluciones similares.

De las deficiencias de temci destaca su "juventud". Debido a esto, no es compatible con todas las configuraciones de hardware y software. Por ejemplo, es difícil de ejecutar con macOS, y algunas funciones no están disponibles en un sistema con un procesador ARM. La situación puede cambiar en el futuro, ya que el autor está desarrollando activamente el proyecto, y el número de estrellas en GitHub está aumentando gradualmente, no hace mucho tiempo incluso se discutió en los comentarios de Hacker News.



banco de uarch


Utilidad para evaluar el rendimiento de las funciones de CPU de bajo nivel, desarrollada por el ingeniero Travis Downs ( Travis Downs ). Recientemente, ha estado ejecutando su blog Performance Matters en las páginas de GitHub, que habla sobre herramientas de evaluación comparativa y otras cosas relacionadas. En general, el banco de uarch está empezando a ganar popularidad, pero los residentes de Hacker News ya lo mencionan con bastante frecuencia en los hilos temáticos como una herramienta de referencia.

Uarch-bench le permite evaluar el rendimiento de la memoria, la velocidad de carga de datos paralelos y trabajar en la limpieza de registros YMM . Los resultados de la evaluación comparativa generados por el programa se pueden encontrar en el repositorio oficial en la parte inferior de la página.

Cabe señalar que uarch-bench, como temci, deshabilita la función Intel Turbo Boost (aumenta automáticamente la velocidad del reloj del procesador bajo carga) para que los resultados de la prueba sean consistentes.

Hasta ahora, el proyecto se encuentra en las primeras etapas de desarrollo, por lo que el banco de uarch no tiene documentación detallada, y puede haber errores en su trabajo; por ejemplo, se conocen dificultades para ejecutar Ryzen. Solo se admiten puntos de referencia para arquitecturas x86. El autor promete agregar más funcionalidades en el futuro e invita a unirse al desarrollo.



likwid


Este es un kit de herramientas para evaluar el rendimiento de las máquinas Linux con procesadores Intel, AMD y ARMv8. Fue creado bajo los auspicios del Ministerio Federal de Educación e Investigación de Alemania en 2017 y se transfirió a código abierto.

Entre las herramientas likwid, se puede distinguir likwid-powermeter, que muestra información de los registros RAPL sobre la potencia consumida por el sistema, así como likwid-setFrequencies, que le permite controlar la frecuencia del procesador. Puede encontrar la lista completa en el repositorio .

La herramienta es utilizada por ingenieros dedicados a la investigación en el campo de HPC. Por ejemplo, un grupo de especialistas del Centro de Computación Regional de la Universidad de Erlangen-Nuremberg (RRZE) en Alemania trabaja con likwid. Ella participa activamente en el desarrollo de este conjunto de herramientas.





Fotos - Clem Onojeghuo - Unsplash



herramientas de perf


Brendan Gregg introdujo esta herramienta para analizar el rendimiento de los servidores Linux. Es uno de los desarrolladores de DTrace , un marco de seguimiento dinámico para depurar aplicaciones en tiempo real.

Las herramientas de perf se basan en los subsistemas del kernel perf_events y ftrace. Sus utilidades le permiten analizar el retraso de entrada / salida (iosnoop), rastrear los argumentos para acceder a las llamadas del sistema (descuenta, funcslower, funcgraph y functrace) y recopilar estadísticas sobre "hits" en el caché de archivos (cachestat). En el último caso, el comando se ve así:

 # ./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 

Se formó una comunidad bastante grande alrededor de la herramienta ( casi 6 mil estrellas en GitHub ). Y hay compañías que usan activamente herramientas de perf, como Netflix . Pero la herramienta se está finalizando y modificando (aunque las actualizaciones se han lanzado muy raramente últimamente). Por lo tanto, pueden ocurrir errores en su trabajo: el autor escribe que a veces perf-tools llama kernel panic.



llvm-mca


Una utilidad que predice cuántos recursos informáticos necesitará un código de máquina en diferentes CPU. Evalúa las instrucciones por ciclo ( IPC ) y la carga de hardware que genera una aplicación.

llvm-mca se introdujo en 2018 como parte del proyecto LLVM , que está desarrollando un sistema universal para el análisis, la transformación y la optimización de programas. Se sabe que los autores de llvm-mca se inspiraron en la solución de análisis de rendimiento del software Intel IACA y trataron de crear una alternativa. Y según los usuarios, el resultado de la herramienta (su marcado y número) realmente se parece a IACA; aquí se puede encontrar un ejemplo. Sin embargo, llvm-mca solo acepta la sintaxis de AT&T , por lo que probablemente necesitará usar convertidores para trabajar con ella.



Sobre qué escribimos en nuestros blogs y redes sociales:

"Mat. Modelo de Wall Street "o cómo optimizar los costos en la nube

Asegurando su sistema Linux: 10 consejos
Minimización de riesgos: cómo no perder sus datos

Libros para aquellos que ya están involucrados en la administración del sistema o que solo planean comenzar
Selección: cinco libros y un curso en redes.



Nosotros en 1cloud.ru ofrecemos un servicio gratuito " hosting DNS ". Puede administrar sus registros DNS en una sola cuenta personal.


Source: https://habr.com/ru/post/464763/


All Articles