Puntos de referencia para servidores Linux: unha selección de ferramentas abertas

Seguimos falando de ferramentas para avaliar o rendemento da CPU en máquinas Linux. Hoxe no material: temci, uarch-bench, likwid, perf-tools e llvm-mca.

Máis puntos de referencia:

Puntos de referencia para servidores Linux: unha selección de ferramentas abertas
Фото - Lukas Blazek - Desarrollar

temci

Esta é unha ferramenta para estimar o tempo de execución de dous programas. Esencialmente, permítelle comparar o tempo de execución de dúas aplicacións. O autor da utilidade foi un estudante de Alemaña, Johannes Bechberger, que a desenvolveu como parte da súa tese de licenciatura en 2016. A ferramenta de hoxe distribuído por licenciado baixo a licenza pública xeral GNU.

Johannes quería crear unha ferramenta que lle permitise medir o rendemento dun sistema informático nun ambiente controlado. Polo tanto, unha das principais características de temci é a capacidade de configurar un ambiente de proba. Por exemplo, unha lata: cambia a configuración do xestor de frecuencia da CPU, desactiva hiper-threading e cachés L1 e L2, desactivar o modo turbo nos procesadores Intel, etc. Para facer benchmarking temci usa ferramentas tempo, perf_stat и getrusage.

Este é o aspecto da utilidade no primeiro 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

En función dos resultados do benchmarking, o sistema xera informe conveniente con diagramas, táboas e gráficos, que distingue os temci de solucións similares.

Entre as carencias do temci destaca a súa “xuventude”. Por iso el non todo está soportado configuracións de hardware e software. Por exemplo, é difícil executar en macOS e algunhas funcións non están dispoñibles nun sistema baseado en ARM. No futuro, a situación pode cambiar, xa que o autor está a desenvolver activamente o proxecto e o número de estrelas en GitHub está aumentando gradualmente, non hai moito tempo, incluso discutido nos comentarios en Hacker News.

uarch-banco

Unha utilidade para avaliar o rendemento das funcións de CPU de baixo nivel, desenvolvida polo enxeñeiro Travis Downs (Travis Downs). Recentemente estivo blogueando O rendemento importa en GitHub Pages, que fala de ferramentas de benchmarking e outras cousas relacionadas. En xeral, uarch-bench comeza a gañar popularidade, pero xa con bastante frecuencia mencionado residentes de Hacker News en fíos temáticos como ferramenta de referencia para o benchmarking.

Uarch-bench permítelle avaliar o rendemento da memoria, a velocidade de carga de datos en paralelo e o traballo de limpeza Rexistros YMM. Pódese atopar como son os resultados de benchmarking xerados polo programa no repositorio oficial na parte inferior da páxina.

Paga a pena notar que uarch-bench, como temci, desconecta Función Intel Turbo Boost (aumenta automaticamente a velocidade do reloxo do procesador baixo carga) para que os resultados das probas sexan consistentes.

Polo momento, o proxecto está nas primeiras fases de desenvolvemento, polo que uarch-bench non ten documentación detallada e o seu funcionamento pode conter erros, por exemplo, as dificultades son coñecidas con lanzamento en Ryzen. Ademais, só se admiten benchmarks para arquitecturas x86. O autor promete engadir máis funcionalidades no futuro e convídao a unirse ao desenvolvemento.

líquido

Este é un conxunto de ferramentas para avaliar o rendemento das máquinas Linux con procesadores Intel, AMD e ARMv8. Foi creado baixo os auspicios do Ministerio Federal de Educación e Investigación alemán en 2017 e lanzouse en código aberto.

Entre as ferramentas likwid, podemos destacar likwid-powermeter, que amosa información dos rexistros RAPL sobre a potencia consumida polo sistema, así como likwid-setFrequencies, que permite controlar a frecuencia do procesador. Podes ver a lista completa atopar no repositorio.

A ferramenta é utilizada por enxeñeiros implicados na investigación HPC. Por exemplo, con likwid traballo un grupo de especialistas do Centro de Computación Rexional da Universidade de Erlangen-Nuremberg (RRZE) en Alemaña. Tamén participa activamente no desenvolvemento deste conxunto de ferramentas.

Puntos de referencia para servidores Linux: unha selección de ferramentas abertas
Фото - Clem Onojeghuo - Desarrollar

ferramentas de perfeccionamento

Esta ferramenta para analizar o rendemento dos servidores Linux introducido Brendan Gregg. El é un dos desenvolvedores DTrace — un marco de rastrexo dinámico para depurar aplicacións en tempo real.

perf-tools baséase nos subsistemas do núcleo perf_events e ftrace. As súas utilidades permítenche analizar a latencia de E/S (iosnoop), rastrexar os argumentos das chamadas do sistema (unccount, funcslower, funcgraph e functrace) e recoller estatísticas sobre "hits" na caché de ficheiros (cachestat). Neste último caso, o comando ten o seguinte aspecto:

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

En torno ao instrumento formouse unha comunidade bastante grande (case 6 mil estrelas en GitHub). E hai empresas que usan activamente ferramentas de perfeccionamento, por exemplo Netflix. Pero a ferramenta estase a desenvolver e modificar aínda máis (aínda que últimamente se publicaron actualizacións moi poucas veces). Polo tanto, poden producirse erros no seu funcionamento: o autor escribe que ás veces as ferramentas de perfeccionamento provocan pánico no núcleo.

llvm-mca

Unha utilidade que prevé cantos recursos informáticos necesitará o código máquina en diferentes CPU. Ela avalía Instrucións por ciclo (IPC) e a carga no hardware que xera unha determinada aplicación.

llvm-mca presentouse en 2018 como parte do proxecto LLVM, que está a desenvolver un sistema universal de análise, transformación e optimización de programas. Sábese que os autores de llvm-mca inspiráronse nunha solución para analizar o rendemento do software IACA de Intel e buscou crear unha alternativa. E segundo os usuarios, a saída da ferramenta (o seu deseño e cantidade) semella realmente IACA - exemplo pódese atopar aquí. Non obstante, llvm-mca só acepta sintaxe de AT&T, polo que probablemente teñas que usar conversores para traballar con el.

Sobre o que escribimos nos nosos blogs e redes sociais:

Puntos de referencia para servidores Linux: unha selección de ferramentas abertas "Mat. modelo de Wall Street" ou como optimizar os custos da nube

Puntos de referencia para servidores Linux: unha selección de ferramentas abertas Como protexer o teu sistema Linux: 10 consellos
Puntos de referencia para servidores Linux: unha selección de ferramentas abertas Minimizar riscos: como non perder os teus datos

Puntos de referencia para servidores Linux: unha selección de ferramentas abertas Libros para aqueles que xa están involucrados na administración do sistema ou están planeando comezar
Puntos de referencia para servidores Linux: unha selección de ferramentas abertas Selección: cinco libros e un curso sobre redes

Puntos de referencia para servidores Linux: unha selección de ferramentas abertasNós en 1cloud.ru ofrecemos un servizo gratuíto "Aloxamento DNS" Podes xestionar rexistros DNS nunha única conta persoal.

Fonte: www.habr.com

Engadir un comentario