Apresentando o Ampere System Profiler


Saiba o que o seu sistema está fazendo

Ao otimizar software em processadores de servidores modernos, saber que “algo está lento” é apenas metade da batalha. A verdadeira vantagem vem de saber onde procurar – e fazê-lo de forma rápida, repetida e com contexto de sistema suficiente para tornar os resultados acionáveis ​​e significativos.

Na Ampere®, construímos a estrutura APEX (Adaptive Profiling and Examination) para estruturar a análise da causa raiz do desempenho e a otimização do rendimento. A ideia central é que a otimização eficaz é um fluxo de trabalho ordenado: medir a camada certa, interpretar com o contexto certo e só então se aprofundar. Destacamos a estrutura em nosso Blog do kit de ferramentas de desempenho Ampere.

O Ampere System Profiler (ASP) está no centro deste processo. Ele ajuda você a entender primeiro o comportamento da pilha do sistema, antes de perder tempo ajustando o aplicativo ou a microarquitetura.

Por que precisamos do Ampere System Profiler?

Os problemas atuais de desempenho geralmente vêm de locais que não são visíveis quando você observa apenas sinais de aplicativos de alto nível. À medida que o código e os sistemas evoluíram, o ajuste de alto nível pode ignorar as realidades da microarquitetura de baixo nível (uarch) e, nas pilhas de computação modernas, é aí que muitas ineficiências se escondem.

O resultado é um ciclo frustrante: os sintomas aparecem (latência, taxa de transferência, comportamento final), mas a causa raiz é obscurecida pelas interações entre as camadas.

Muitos utilitários e fluxos de trabalho de desempenho existentes são pesados ​​e efetivamente “tamanho único”. Eles não impõem um fluxo de trabalho estruturado que diga:

  • O que medir
  • Quando medir
  • Mais importante ainda, como conectar sintomas ambíguos a causas do sistema acionáveis

É exatamente por isso que as equipes muitas vezes gastam tempo coletando dados irrelevantes ou enganosos, em vez de construir evidências em nível de sistema.

Em implantações reais, os sintomas de desempenho geralmente surgem de interações entre múltiplas camadas, como:

  • Comportamento do sistema impulsionado por restrições de energia, frequência e térmicas
  • Comportamento de agendamento da CPU e efeitos da topologia da CPU
  • Saturação de disco e rede
  • Sobrecargas no nível do kernel (manipulação de interrupções, troca de contexto, pilhas de rede)
  • Posicionamento NUMA e padrões de tráfego de memória

O ASP foi projetado para expor essas interações enquanto a carga de trabalho está em execução. Ajuda a converter sintomas ambíguos (por exemplo, latência pior, taxa de transferência reduzida) em evidências no nível do sistema que explicam por que a carga de trabalho se comportou dessa maneira.

Como aplicar a estrutura Apex

O Funil de Benchmarking e Otimização Adaptive Profiling and Execution (APEX)

Um modelo mental útil para o APEX é passar de uma ampla visibilidade para uma investigação direcionada:

  1. Avalie a integridade da plataforma
  2. Estabeleça o desempenho básico do aplicativo
  3. Use o ASP para identificar gargalos no nível do sistema durante a carga de trabalho
  4. Se necessário, aprofunde-se no ajuste do aplicativo
  5. Prossiga com o ajuste da microarquitetura, se necessário

O Ampere System Profiler ajuda você a responder o porquê dos sintomas no nível do sistema, unindo o comportamento da plataforma aos resultados do aplicativo.

Juntos, eles reduzem as suposições e encurtam o cronograma de depuração.

O que é o Ampere System Profiler?

O Ampere System Profiler é uma ferramenta de criação de perfil com reconhecimento de sistema que fornece insights acionáveis ​​em nível de sistema. Ele foi criado para responder perguntas como:

  • Quais subsistemas contribuem mais para o tempo gasto?
  • A carga de trabalho está vinculada à CPU, à memória ou à E/S?
  • Como o comportamento de agendamento e a topologia da CPU afetam o rendimento e a latência?
  • Duas execuções que parecem semelhantes no nível do aplicativo escondem diferenças significativas no nível do sistema?
  • Os efeitos no nível da plataforma, como potência, frequência ou comportamento térmico, estão moldando os resultados?

Resumindo, o ASP ajuda a conectar os sintomas do aplicativo às causas do sistema usando evidências coletadas durante a janela de amostra.

O que o ASP coleta (nível do sistema)

O ASP executa vários coletores Linux simultaneamente enquanto sua carga de trabalho é executada. A intenção é capturar uma visão coerente do comportamento do sistema entre subsistemas durante a mesma janela de tempo. Os colecionadores incluem:

  • Utilização da CPU e divisão entre usuário e tempo do sistema
  • Estatísticas NUMA para entender o comportamento da memória por nó
  • Comportamento de soquete/energia (quando suportado) para observar a dinâmica do estado de potência e desempenho da plataforma
  • Utilização da rede para detectar saturação, picos e desequilíbrio
  • E/S de disco para detectar padrões de taxa de transferência e de paralisação
  • Funções de hotspot baseadas em Perf para identificar onde os ciclos de CPU estão sendo gastos (incluindo caminhos de usuário e de kernel)

O ASP gera relatórios HTML legíveis para triagem rápida e armazena dados brutos para investigação mais profunda quando a investigação precisa ir além dos gráficos de resumo.

Casos de uso típicos

O ASP acelera a análise da causa raiz em cenários como:

  • Investigação de latência de cauda: determinar se os picos estão correlacionados com agendamento, contenção, interrupções ou mudanças de estado da plataforma
  • Planejamento de capacidade: verificar se as cargas de trabalho são dimensionadas com recursos de CPU ou atingem restrições de memória/E/S
  • Depuração de regressão: compare execuções para identificar mudanças comportamentais no nível do sistema não visíveis nos logs do aplicativo
  • Validação de ajuste de desempenho: confirmar que uma mudança melhorou o verdadeiro gargalo subjacente (não apenas o comportamento do chicote de referência)
  • Comparações ambientais: entender por que o comportamento difere entre nós, configurações, configurações de kernel/tempo de execução ou topologias de implantação

Quando você deve usar o Ampere System Profiler?

Considere usar o ASP quando:

  • Você tem sintomas de desempenho, mas precisa de evidências da causa raiz no nível do sistema
  • O desempenho varia entre execuções, nós ou ambientes
  • Você precisa conectar o comportamento da carga de trabalho ao comportamento da plataforma (CPU, memória, energia, interrupções)
  • Você está avaliando alterações no kernel/tempo de execução, estratégias de posicionamento de contêineres ou alterações na configuração do sistema

Chamada para ação

Para mais detalhes sobre a metodologia e como aplicá-la de ponta a ponta, baixe o Tutorial ASPexecute as orientações incluídas.

Para saber mais sobre o Ampere System Profiler, confira nossos vídeos: Pare de adivinhar: identificando gargalos com o Ampere System Profiler e Ampere System Profiler – Otimize sua instância na nuvem.

Conclusão

A engenharia de desempenho trata da compreensão das interações do sistema, não apenas de métricas isoladas.

O Ampere System Profiler ajuda você a ver essas interações com clareza, preenchendo a lacuna entre os sintomas do aplicativo e as causas do sistema com evidências repetíveis no nível do sistema.



Source link