ProHoster > Blog > administración > Puntos de referencia para servidores Linux: una selección de herramientas abiertas
Puntos de referencia para servidores 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.
Esta es una herramienta para estimar el tiempo de ejecución de dos programas. Básicamente, te permite comparar el tiempo de ejecución de dos aplicaciones. El autor de la utilidad fue el estudiante alemán Johannes Bechberger, quien la desarrolló como parte de su tesis de pregrado en 2016. La herramienta de hoy distribuido por licenciado bajo la Licencia Pública General GNU.
Johannes quería crear una herramienta que le permitiera medir el rendimiento de un sistema informático en un entorno controlado. Por tanto, una de las características principales de temci es la capacidad de configurar un entorno de prueba. Por ejemplo, uno puede: cambiar la configuración del administrador de frecuencia de la CPU, desactivar hyperthreading y cachés L1 y L2, desactive el modo turbo en procesadores Intel, etc. Para realizar evaluaciones comparativas, temci utiliza herramientas equipo, rendimiento_stat и conseguir.
Así es como se ve 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 del benchmarking, el sistema genera informe conveniente con diagramas, tablas y gráficos, lo que distingue a temci de soluciones similares.
Entre las deficiencias de temci destaca su “juventud”. Debido a esto él no todo es compatible configuraciones de hardware y software. Por ejemplo, es difícil ejecutarlo en macOS y algunas funciones no están disponibles en un sistema basado en ARM. En el futuro, la situación puede cambiar, ya que el autor está desarrollando activamente el proyecto y el número de estrellas en GitHub está aumentando gradualmente; no hace mucho, incluso discutido en los comentarios en Noticias de piratas informáticos.
Una utilidad para evaluar el rendimiento de funciones de CPU de bajo nivel, desarrollada por el ingeniero Travis Downs (Travis Downs). Recientemente ha estado blogueando. El rendimiento importa en GitHub Pages, que habla sobre herramientas de evaluación comparativa y otras cosas relacionadas. En general, el banco uarch apenas comienza a ganar popularidad, pero ya es bastante común. mencionado residentes de Hacker News en hilos temáticos como herramienta de referencia para realizar evaluaciones comparativas.
Uarch-bench le permite evaluar el rendimiento de la memoria, la velocidad de carga de datos en paralelo y el trabajo de limpieza Registros YMM. Se puede encontrar cómo se ven los resultados de la evaluación comparativa generados por el programa. en el repositorio oficial al final de la página.
Vale la pena señalar que uarch-bench, al igual que temci, desconecta Función Intel Turbo Boost (aumenta automáticamente la velocidad del reloj 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 tiene documentación detallada y su funcionamiento puede contener errores, por ejemplo, las dificultades son conocidas con lanzamiento en Ryzen. Además, sólo se admiten pruebas comparativas para arquitecturas x86. El autor promete agregar más funciones en el futuro y lo invita a unirse al desarrollo.
Este es un conjunto de herramientas para evaluar el rendimiento de 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 lanzado en código abierto.
Entre las herramientas likwid, podemos destacar likwid-powermeter, que muestra información de los registros RAPL sobre la energía consumida por el sistema, así como likwid-setFrequencies, que permite controlar la frecuencia del procesador. Puedes ver la lista completa encontrar en el repositorio.
La herramienta es utilizada por ingenieros involucrados en la investigación de HPC. Por ejemplo, con likwid obras un grupo de especialistas del Centro Regional de Computación de la Universidad de Erlangen-Nuremberg (RRZE) en Alemania. También participa activamente en el desarrollo de este conjunto de herramientas.
Esta herramienta para analizar el rendimiento de los servidores Linux. presentado Brendan Gregg. Él es uno de los desarrolladores. DTrace – un marco de seguimiento dinámico para depurar aplicaciones en tiempo real.
perf-tools se basa en los subsistemas del kernel perf_events y ftrace. Sus utilidades le permiten analizar la latencia de E/S (iosnoop), rastrear los argumentos de las llamadas al sistema (unccount, funcslower, funcgraph y functrace) y recopilar estadísticas sobre "aciertos" en el caché de archivos (cachestat). En el último caso, el comando tiene este aspecto:
Se ha formado una comunidad bastante grande en torno al instrumento (casi 6 mil estrellas en GitHub). Y hay empresas que utilizan activamente perf-tools, por ejemplo Netflix. Pero la herramienta se está desarrollando y modificando aún más (aunque últimamente se han publicado actualizaciones muy raramente). Por lo tanto, pueden ocurrir errores en su funcionamiento: el autor escribe que a veces perf-tools provoca pánico en el kernel.
Una utilidad que predice cuántos recursos informáticos requerirá el código de máquina en diferentes CPU. Ella aprecia Instrucciones por ciclo (IPC) y la carga en el hardware que genera una aplicación en particular.
llvm-mca fue presentado en 2018 como parte del proyecto LLVM, que está desarrollando 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 una solución para analizar el rendimiento del software. IACA de Intel y buscó crear una alternativa. Y según los usuarios, el resultado de la herramienta (su diseño y cantidad) realmente se parece a IACA - ejemplo se puede encontrar aquí. Sin embargo, llvm-mca sólo acepta Sintaxis de AT&T, por lo que lo más probable es que tengas que utilizar convertidores para trabajar con él.
Sobre qué escribimos en nuestros blogs y redes sociales: