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

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

Mais benchmarks:

Benchmarks para servidores Linux: uma seleção de ferramentas abertas
Foto — Lukas Blazek — Unsplash

temci

Este é uma ferramenta para avaliar o tempo de execução de dois programas. Na prática, permite comparar o tempo de execução de dois aplicativos. O autor da utilidade é um estudante da Alemanha, Johannes Bechberger, que desenvolveu-a como parte de seu trabalho de conclusão de curso em 2016. Hoje a ferramenta é distribuído é licenciada sob a GNU General Public License.

Johannes queria criar uma ferramenta que permitisse medir o desempenho de um sistema computacional em um ambiente controlado. Portanto, uma das principais características do temci é a capacidade de configurar o ambiente de teste. Por exemplo, é possível: alterar as configurações do gerenciador de frequência da CPU, desativar hyper-threading e os caches L1 e L2, desativar o modo turbo em processadores Intel, entre outros. Para benchmark, o temci utiliza as ferramentas time, perf_stat e getrusage.

Assim funciona a 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

Com os resultados do benchmarking, o sistema gera um relatório amigável com diagramas, tabelas e gráficos, o que diferencia o temci de soluções similares.

Entre as desvantagens do temci, está sua 'juventude'. Devido a isso, ele não suporta todas as configurações de hardware e software. Por exemplo, é difícil executá-lo no macOS e em sistemas com processadores ARM, algumas funções não estão disponíveis. No futuro, a situação pode mudar, pois o autor está desenvolvendo ativamente o projeto, e o número de estrelas no GitHub está aumentando gradualmente — recentemente, o temci foi até discutido nos comentários no Hacker News.

uarch-bench

Utilitário para avaliar o desempenho de funções de baixo nível da CPU, desenvolvido pelo engenheiro Travis Downs (Travis Downs). Recentemente, ele tem seu blog Performance Matters no GitHub Pages, onde fala sobre ferramentas para benchmarking e outros assuntos relacionados. Em geral, o uarch-bench ainda está começando a ganhar popularidade, mas já é frequentemente mencionado é mencionada por membros do Hacker News em tópicos relevantes como uma ferramenta essencial para benchmarking.

O uarch-bench permite avaliar o desempenho da memória, a velocidade de carregamento paralelo de dados e a eficiência da limpeza. Registros YMM.Os resultados do benchmarking gerados pelo programa podem ser encontrados no repositório oficial. na parte inferior da página.

Vale ressaltar que o uarch-bench, assim como o temci, desativa a função Intel Turbo Boost (que aumenta automaticamente a frequência do processador sob carga) para que os resultados dos testes sejam consistentes.

Atualmente, o projeto está em estágios iniciais de desenvolvimento, portanto, o uarch-bench não possui documentação detalhada, e podem ocorrer bugs em seu funcionamento — por exemplo, são conhecidas dificuldades ao rodar em Ryzen. Além disso, apenas benchmarks para arquiteturas x86 são suportados. O autor promete adicionar mais funcionalidades no futuro e convida outros a se juntar ao desenvolvimento.

likwid

É um conjunto de ferramentas para avaliar o desempenho de máquinas Linux com processadores Intel, AMD e ARMv8. Foi criado sob a égide do Ministério Federal da Educação e Pesquisa da Alemanha em 2017 e disponibilizado como open source.

Entre as ferramentas do likwid, destaca-se o likwid-powermeter, que fornece informações dos registros RAPL sobre o consumo de energia do sistema, assim como o likwid-setFrequencies — que permite controlar a frequência do processador. Você pode encontrar a lista completa no repositório..

Esse instrumento é utilizado por engenheiros que trabalham em pesquisa na área de HPC. Por exemplo, com o likwid trabalha um grupo de especialistas do Centro de Computação Regional da Universidade de Erlangen-Nuremberg (RRZE) na Alemanha. Este grupo também participa ativamente do desenvolvimento desse conjunto de ferramentas.

Benchmarks para servidores Linux: uma seleção de ferramentas abertas
Foto — Clem Onojeghuo — Unsplash

perf-tools

Esta ferramenta de análise de desempenho para servidores Linux apresentou Brendan Gregg. Ele é um dos desenvolvedores DTrace — um framework de rastreamento dinâmico para depuração de aplicativos em tempo real.

Os perf-tools são baseados nos subsistemas do kernel perf_events e ftrace. Suas utilitários permitem analisar a latência de entrada/saída (iosnoop), rastrear argumentos de chamadas do sistema (unccount, funcslower, funcgraph e functrace) e coletar estatísticas de "acertos" no cache de arquivos (cachestat). No último caso, o comando fica assim:

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

Em torno da ferramenta, formou-se uma comunidade bastante ampla (quase 6 mil estrelas no GitHub). E há empresas que utilizam ativamente o perf-tools, como por exemplo Netflix. Mas a ferramenta está em desenvolvimento e modificação (embora nas últimas atualizações tenham sido bem raras). Portanto, é possível que ocorram erros em seu funcionamento — o autor menciona que às vezes o perf-tools provoca kernel panic.

llvm-mca

Uma ferramenta que prevê quantos recursos computacionais serão necessários para o código de máquina em diferentes CPUs. Ela estima Instruções Por Ciclo (IPC) e a carga no hardware que cada aplicação gera.

O llvm-mca foi apresentado em 2018 como parte do projeto LLVM, que se dedica ao desenvolvimento de um sistema universal de análise, transformação e otimização de programas. Sabe-se que os autores do llvm-mca se inspiraram na solução de análise de desempenho de software IACA da Intel e buscaram criar sua alternativa. E segundo usuários, as saídas da ferramenta (sua formatação e quantidade) realmente lembram o IACA — um exemplo pode ser encontrado aqui. Contudo, o llvm-mca aceita apenas sintaxe AT&T, portanto, para trabalhar com ele, provavelmente será necessário usar conversores.

Sobre o que escrevemos em nossos blogs e redes sociais:

Benchmarks para servidores Linux: uma seleção de ferramentas abertas «Modelo matemático de Wall Street» ou como otimizar custos na nuvem

Benchmarks para servidores Linux: uma seleção de ferramentas abertas Como proteger um sistema Linux: 10 dicas
Benchmarks para servidores Linux: uma seleção de ferramentas abertas Minimizando riscos: como não perder seus dados

Benchmarks para servidores Linux: uma seleção de ferramentas abertas Livros para quem já está em administração de sistemas ou está apenas planejando começar
Benchmarks para servidores Linux: uma seleção de ferramentas abertas Seleção: cinco livros e um curso sobre redes

Benchmarks para servidores Linux: uma seleção de ferramentas abertasNós da 1cloud.ru oferecemos um serviço gratuito de «hospedagem de DNS». Gerir registros DNS conosco é possível em um único painel de controle.

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster