Seguimos falando de ferramentas para avaliar o rendemento da CPU en Linux-máquinas. O material de hoxe: temci, uarch-bench, likid, perf-tools e llvm-mca.
Máis puntos de referencia:
Фото - - Desarrollar
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 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, : cambia a configuración do xestor de frecuencia da CPU, desactiva e cachés L1 e L2, desactivar o modo turbo nos procesadores Intel, etc. Para facer benchmarking temci usa ferramentas , и .
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 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 configuracións de hardware e software. Por exemplo, é difícil executar baixo macOS, e algunhas funcionalidades non están dispoñibles en sistemas cun procesador ARM. Isto pode cambiar no futuro, xa que o autor está a desenvolver activamente o proxecto e o número de estrelas en GitHub está a aumentar gradualmente; non hai moito, temci incluso en Hacker News.
Unha utilidade para avaliar o rendemento das funcións de CPU de baixo nivel, desenvolvida polo enxeñeiro Travis Downs (). Recentemente estivo blogueando 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 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 . Pódese atopar como son os resultados de benchmarking xerados polo programa na parte inferior da páxina.
Paga a pena notar que uarch-bench, como temci, 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, 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.
Este é un conxunto de ferramentas para a avaliación do rendemento Linux-máquinas con procesadores Intel, AMD e ARMv8. Foi creado baixo os auspicios do Ministerio Federal de Educación e Investigación de Alemaña en 2017 e lanzado como 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 .
A ferramenta é utilizada por enxeñeiros implicados na investigación HPC. Por exemplo, con likwid 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.

Фото - - Desarrollar
Esta é unha ferramenta de análise do rendemento Linux-servidores Brendan Gregg. El é un dos desenvolvedores — 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 (). E hai empresas que usan activamente ferramentas de perfeccionamento, por exemplo . 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.
Unha utilidade que prevé cantos recursos informáticos necesitará o código máquina en diferentes CPU. Ela Instrucións por ciclo () e a carga no hardware que xera unha determinada aplicación.
llvm-mca presentouse en 2018 como parte do proxecto , 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 e buscou crear unha alternativa. E segundo os usuarios, a saída da ferramenta (o seu deseño e cantidade) semella realmente IACA - exemplo . Non obstante, llvm-mca só acepta , polo que probablemente teñas que usar conversores para traballar con el.
Sobre o que escribimos nos nosos blogs e redes sociais:
![]()
![]()
![]()
![]()
![]()
Nós en 1cloud.ru ofrecemos un servizo gratuíto "" Podes xestionar rexistros DNS nunha única conta persoal.
Fonte: www.habr.com
