Benchmarks para servidores no Linux: uma seleção de ferramentas abertas

Continuamos a falar sobre ferramentas para avaliar o desempenho da CPU em máquinas Linux. Hoje no material: temci, uarch-bench, likwid, perf-tools e llvm-mca.

Mais referências:



Fotos - Lukas Blazek - Unsplash



temci


Esta é uma ferramenta para estimar o tempo de execução de dois programas. De fato, permite comparar o tempo de execução de dois aplicativos. O utilitário foi escrito por um estudante da Alemanha, Johannes Bechberger, que o desenvolveu como parte de seu trabalho de graduação em 2016. Hoje, a ferramenta está licenciada sob a GNU General Public License.

Johannes queria criar uma ferramenta que medisse o desempenho de um sistema de computação em um ambiente controlado. Portanto, um dos principais recursos do temci é a capacidade de configurar um ambiente de teste. Por exemplo, você pode : alterar as configurações do gerenciador de controle de frequência da CPU, desativar o hyperthreading e os caches L1 e L2, desativar o modo turbo nos processadores Intel e outros.Para comparação, o temci usa as ferramentas de tempo , perf_stat e getrusage .

É assim que o utilitário funciona 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 

Com base nos resultados do benchmarking, o sistema gera um relatório conveniente com diagramas, tabelas e gráficos, que distingue o temci de soluções semelhantes.

Das deficiências de temci se destaca sua "juventude". Por esse motivo, ele não suporta todas as configurações de hardware e software. Por exemplo, é difícil executar no macOS e algumas funções não estão disponíveis em um sistema com um processador ARM. A situação pode mudar no futuro, à medida que o autor estiver desenvolvendo ativamente o projeto, e o número de estrelas no GitHub está aumentando gradualmente - há pouco tempo, o temci foi discutido nos comentários do Hacker News.



uarch-bench


Utilitário para avaliar o desempenho de funções de CPU de baixo nível, desenvolvido pelo engenheiro Travis Downs ( Travis Downs ). Recentemente, ele está executando seu blog Performance Matters no GitHub Pages, que fala sobre ferramentas de benchmarking e outras coisas relacionadas. Em geral, o uarch-bench está apenas começando a ganhar popularidade, mas já é frequentemente mencionado pelos residentes do Hacker News em tópicos temáticos como uma ferramenta de benchmarking.

O Uarch-bench permite avaliar o desempenho da memória, a velocidade do carregamento paralelo de dados e trabalhar na limpeza dos registros YMM . A aparência dos resultados de benchmarking gerados pelo programa pode ser encontrada no repositório oficial na parte inferior da página.

Deve-se observar que o uarch-bench, como o temci, desativa a função Intel Turbo Boost (aumenta automaticamente a velocidade do clock do processador sob carga) para que os resultados do teste sejam consistentes.

Até o momento, o projeto está nos estágios iniciais de desenvolvimento, de modo que o banco de dados não possui documentação detalhada e pode haver bugs em seu trabalho - por exemplo, são conhecidas dificuldades em executar o Ryzen. Apenas benchmarks para arquiteturas x86 também são suportados. O autor promete adicionar mais funcionalidades no futuro e convida para participar do desenvolvimento.



likwid


Este é um kit de ferramentas para avaliar o desempenho de máquinas Linux com processadores Intel, AMD e ARMv8. Foi criado sob os auspícios do Ministério Federal da Educação e Pesquisa da Alemanha em 2017 e transferido para código aberto.

Entre as ferramentas likwid, o likwid-powermeter pode ser diferenciado, o que exibe informações dos registros RAPL sobre a energia consumida pelo sistema, bem como o likwid-setFrequencies - permite controlar a frequência do processador. Você pode encontrar a lista completa no repositório .

A ferramenta é usada por engenheiros envolvidos em pesquisas no campo da HPC. Por exemplo, um grupo de especialistas do Centro Regional de Computação da Universidade de Erlangen-Nuremberg (RRZE) na Alemanha trabalha com likwid. Ela está ativamente envolvida no desenvolvimento desse conjunto de ferramentas.





Fotos - Clem Onojeghuo - Unsplash



perf-tools


Essa ferramenta para analisar o desempenho dos servidores Linux foi introduzida por Brendan Gregg. Ele é um dos desenvolvedores do DTrace , uma estrutura de rastreamento dinâmico para depuração de aplicativos em tempo real.

As ferramentas perf são baseadas nos subsistemas do kernel perf_events e ftrace. Seus utilitários permitem analisar o atraso de entrada / saída (iosnoop), rastrear os argumentos para acessar as chamadas do sistema (incontagem, funcslower, funcgraph e functrace) e coletar estatísticas sobre "acertos" no cache de arquivos (cachestat). No último caso, o comando se parece com isso:

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

Uma comunidade bastante grande se formou em torno da ferramenta ( quase 6 mil estrelas no GitHub ). E há empresas que usam ativamente ferramentas de perf, como a Netflix . Mas a ferramenta está sendo finalizada e modificada (embora as atualizações tenham sido lançadas muito raramente ultimamente). Portanto, erros podem ocorrer em seu trabalho - o autor escreve que às vezes o perf-tools chama kernel panic.



llvm-mca


Um utilitário que prevê quantos recursos de computação um código de máquina precisará em diferentes CPUs. Ele avalia as instruções por ciclo ( IPC ) e a carga de hardware que um aplicativo gera.

O llvm-mca foi introduzido em 2018 como parte do projeto LLVM , que está desenvolvendo um sistema universal para análise, transformação e otimização de programas. Sabe-se que os autores do llvm-mca foram inspirados pela solução de análise de desempenho de software Intel IACA e procuraram criar uma alternativa a ela. E, de acordo com os usuários, a saída da ferramenta (sua marcação e número) realmente se assemelha à IACA - um exemplo pode ser encontrado aqui . No entanto, o llvm-mca aceita apenas a sintaxe da AT&T ; portanto, você provavelmente precisará usar conversores para trabalhar com ele.



Sobre o que escrevemos em nossos blogs e redes sociais:

"Mat. Modelo de Wall Street "ou como otimizar os custos da nuvem

Protegendo seu sistema Linux: 10 dicas
Minimização de riscos: como não perder seus dados

Livros para quem já está envolvido na administração do sistema ou planeja começar
Seleção: cinco livros e um curso em redes



Em 1cloud.ru, oferecemos um serviço gratuito de " hospedagem DNS ". Você pode gerenciar seus registros DNS em uma única conta pessoal.


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


All Articles