Compartilhar via


Solucionar problemas de desempenho da máquina virtual Linux com o Diagnóstico de Desempenho (PerfInsights)

Aplica-se a: ✔️ VMs linux

Observação

O CentOS mencionado neste artigo é uma distribuição Linux e chegará ao fim da vida útil (EOL). Considere seu uso e planeje adequadamente. Para obter mais informações, consulte Diretrizes de fim da vida útil do CentOS.

PerfInsights Linux é uma ferramenta de diagnóstico de autoajuda que coleta e analisa os dados de diagnóstico e fornece um relatório para ajudar a solucionar problemas de desempenho da máquina virtual Linux no Azure. O PerfInsights pode ser executado em máquinas virtuais com suporte como uma ferramenta autônoma ou diretamente do portal usando o Diagnóstico de desempenho para máquinas virtuais do Azure.

Se você estiver tendo problemas de desempenho com máquinas virtuais, antes de entrar em contato com o suporte, execute esta ferramenta.

Cenários de soluções de problemas com suporte

O PerfInsights pode coletar e analisar vários tipos de informações. As seções a seguir abordam cenários comuns.

Análise rápida de desempenho

Este cenário coleta informações básicas, como armazenamento e configuração de hardware de sua máquina virtual, vários logs, incluindo:

  • Informação do Sistema Operacional

  • Informações do dispositivo PCI

  • Registros gerais do sistema operacional convidado

  • Arquivos de configuração

  • Informações de armazenamento

  • Configuração da Máquina Virtual do Azure (coletada usando Serviço de Metadados de Instância do Azure

  • Lista de processos em execução, uso de disco, memória e CPU

  • informações de rede

Esta é uma coleção passiva de informações que não deve afetar o sistema.

Observação

O cenário de análise rápida de desempenho é incluído automaticamente em cada um dos seguintes cenários:

Análise de desempenho

Este cenário é semelhante à análise rápida de desempenho, mas permite capturar informações de diagnóstico por mais tempo.

Análise de desempenho de HPC

Este cenário destina-se a solucionar problemas em VMs de tamanho HPC, ou seja, H-Series e N-Series. Ele verifica a configuração de uma VM em relação ao que a equipe da plataforma Azure HPC testou e recomendou. Ele também coleta logs e diagnósticos relacionados ao status e configuração do hardware especial disponível nessas VMs, incluindo:

  • Informações do driver da GPU

  • Diagnóstico de hardware da GPU

  • Informações e configuração do driver InfiniBand

  • Diagnóstico do dispositivo InfiniBand

  • Arquivos de configuração de rede

  • Informações de ajuste de desempenho

Observação

Algumas ferramentas usadas pelo cenário de análise de desempenho HPC, como comandos cli que são empacotados com drivers de dispositivo, não estão presentes em todas as VMs. Nesses casos, essas partes da análise serão ignoradas. A execução desse cenário não instala nenhum software nas VMs nem faz nenhuma outra alteração permanente.

Observação

A execução do cenário HPC diretamente do Portal do Azure não é suportada no momento, portanto, o PerfInsights deve ser baixado e executado na linha de comando para usá-lo.

Que tipos de informações são coletados pelo PerfInsights

São coletadas informações sobre a máquina virtual Linux, sistema operacional, dispositivos de bloco, consumidores de alto recurso, configuração e vários logs. Veja mais detalhes abaixo:

  • Sistema operacional

    • Distribuição e versão do Linux
    • informações do kernel
    • Informações do motorista
    • Logs de Extensão de VM do Driver HPC do Azure*
    • Configuração do SELinux*
  • Hardware

    • Dispositivos PCI [*]
    • Saída de lscpu*
    • Despejo da tabela das BIOS de Gerenciamento do Sistema*
  • Processos e memória

    • Lista de processos (nome da tarefa, memória utilizada, arquivos abertos)
    • Memória física total, disponível e livre
    • Memória de troca total, disponível e livre
    • Captura de perfil da CPU e processa o uso da CPU em intervalos de 5 segundos
    • Captura de perfil de uso de memória de processos em intervalo de 5 segundos
    • Limites de usuário para acesso à memória*
    • Configuração NUMA*
  • GPU

    • Saída SMI Nvidia*
    • Diagnósticos Nvidia DCGM*
    • Despejo de depuração da Nvidia*
  • Rede

    • Lista de adaptadores de rede com estatísticas de adaptadores
    • Tabela de roteamento de rede
    • Portas abertas e status
    • Chaves de partição InfiniBand*
    • Saída de ibstat*
  • Armazenamento

    • Lista de dispositivos de bloqueio
    • Lista de partições
    • Lista de pontos de montagem
    • Informações de volume do MDADM
    • Informações de volume do LVM
    • Captura de criação de perfil em todos os discos em intervalo de 5 segundos
  • Logs

    • /var/log/mensagens
    • /var/log/syslog
    • /var/log/kern.log
    • /var/log/cron.log
    • /var/log/boot.log
    • /var/log/yum.log
    • /var/log/dpkg.log
    • /var/log/sysstat ou /var/log/sa [**]
    • /var/log/cloud-init.log
    • /var/log/cloud-init-output.log
    • /var/log/gpu-manager.log
    • /var/log/waagent.log
    • /var/log/azure/[pasta de extensão]/*log*
    • /var/opt/microsoft/omsconfig/omsconfig.log
    • /var/opt/microsoft/omsagent/log/omsagent.log
    • /etc/waagent.config
    • Saída do journalctl nos últimos cinco dias
  • Metadados da instância da máquina virtual Azure

* Apenas no cenário HPC

Rastreamento de diagnóstico de desempenho

Executa um mecanismo baseado em regras em segundo plano para coletar dados e diagnosticar problemas de desempenho contínuos. As regras são exibidas no relatório na guia Categoria -> Descoberta.

Cada regra consiste no seguinte:

  • Descoberta: Descrição da descoberta.
  • Recomendação: Recomendação sobre qual ação poderia ser tomada para a descoberta. Há também links de referência para documentação que fornecem mais informações sobre a descoberta e/ou recomendação.
  • Nível de Impacto: Representa o potencial de impacto no desempenho.

As seguintes categorias de regras são atualmente suportadas:

  • Alto uso de recursos:

    • Alto uso da CPU: detecta períodos de alto uso da CPU e mostra os principais consumidores de uso da CPU durante esses períodos.
    • Alto uso de memória: detecta períodos de alto uso de memória e mostra os principais consumidores de uso de memória durante esses períodos.
    • Alto uso de disco: detecta períodos de alto uso de disco em discos físicos e mostra os principais consumidores de uso de disco durante esses períodos.
  • Armazenamento: Detecta configurações de armazenamento específicas.

  • Memória: Detecta configurações de memória específicas.

  • GPU: detecta configurações específicas de GPU.

  • Rede: detecta configurações de rede específicas.

  • Sistema: Detecta configurações específicas do sistema.

Observação

[*] As informações de PCI ainda não são coletadas nas distribuições Debian e SLES.

[**] /var/log/sysstat ou /var/log/sa contém os arquivos System Activity Report (SAR) que são coletados pelo pacote sysstat. Se o pacote sysstat não estiver instalado na VM, a ferramenta PerfInsights fornecerá uma recomendação para instalá-lo.

Execute o PerfInsights Linux em sua VM

O que devo saber antes de executar a ferramenta

Necessidades de ferramentas

  • Essa ferramenta deve ser executada na VM que apresenta o problema de desempenho.

  • O Python 3.6 ou uma versão posterior deve ser instalado na VM.

    Observação

    O Python 2 não é mais suportado pela Python Software Foundation (PSF). Se o Python 2.7 estiver instalado na VM, o PerfInsights poderá ser instalado. No entanto, nenhuma alteração ou correção de bug será feita no PerfInsights para dar suporte ao Python 2.7. Para obter mais informações, consulte Desativação do Windows 2.

  • As seguintes distribuições são atualmente suportadas:

    Observação

    A Microsoft testou apenas as versões listadas na tabela. Se uma versão não estiver listada na tabela, ela não será testada explicitamente pela Microsoft, mas a versão ainda poderá funcionar.

    Distribuição Versão
    Servidor Oracle Linux 6.10 [*], 7.3, 7.5, 7.6, 7.7, 7.8, 7.9
    CentOS 6,5 [*], 7,6, 7,7, 7,8, 7,9
    RHEL 7.2, 7.5, 8.0 [*], 8.1, 8.2, 8.6, 8.8
    Ubuntu 14.04, 16.04, 18.04, 20.04, 22.04
    Debian 8, 9, 10, 11 [*]
    SLES 12 SP4 [*], 12 SP5 [*], 15 [*], 15 SP1 [*], 15 SP2 [*], 15 SP4 [*]
    AlmaLinux 8,4, 8,5
    Azure Linux 2,0

Observação

[*] Consulte a seção Problemas conhecidos

Observação

[*] O cenário HPC depende da ferramenta HPCDiag, então verifique sua matriz de suporte para tamanhos de VM e sistemas operacionais suportados. Em particular, as VMs de tamanho NDv4 ainda não são compatíveis e os relatórios dessas VMs podem mostrar descobertas estranhas.

Problemas conhecidos

  • O RHEL 8 não tem o Python instalado por padrão porque o Python 2 e o Python 3.6 estão disponíveis. Para instalar o Python 3.6, execute o yum install python3 comando.

  • A coleta de informações do Agente Convidado pode falhar no CentOS 6.x.

  • As informações dos dispositivos PCI não são coletadas em distribuições baseadas no Debian.

  • As informações do LVM são parcialmente coletadas em algumas distribuições.

Como executo o PerfInsights

Você pode executar o PerfInsights em uma máquina virtual instalando o Diagnóstico de Desempenho do Azure no portal do Azure. Você também pode executá-lo como uma ferramenta autônoma.

Observação

O PerfInsights simplesmente coleta e analisa os dados. Não faz nenhuma modificação no sistema.

Instalar e executar PerfInsights do portal do Azure

Para obter mais informações sobre essa opção, consulte Azure Performance Diagnostics.

Executar PerfInsights no modo autônomo

Para executar a ferramenta PerfInsights, siga estas etapas:

  1. Baixe PerfInsights.tar.gz para uma pasta em sua máquina virtual e extraia o conteúdo usando os comandos abaixo do terminal.

    wget https://download.microsoft.com/download/9/F/8/9F80419C-D60D-45F1-8A98-718855F25722/PerfInsights.tar.gz
    
    tar xzvf PerfInsights.tar.gz
    
  2. Navegue até a pasta que contém o arquivo perfinsights.py e execute perfinsights.py para visualizar os parâmetros de linha de comando disponíveis.

    cd <the path of PerfInsights folder>
    sudo python perfinsights.py
    

    Captura de tela da saída da linha de comando do PerfInsights Linux.

    A sintaxe básica para executar cenários do PerfInsights é:

    sudo python perfinsights.py -r <ScenarioName> -d [duration]<H | M | S> [AdditionalOptions]
    

    Você pode usar o exemplo abaixo para executar o cenário de análise de desempenho rápido por 1 minuto e criar os resultados na pasta /tmp/output:

    sudo python perfinsights.py -r quick -d 1M -a -o /tmp/output
    

    Você pode usar o exemplo abaixo para executar o cenário de análise de desempenho por 5 minutos e carregar o resultado (armazena em um arquivo TAR) para a conta de armazenamento:

    sudo python perfinsights.py -r vmslow -d 300S -a -t <StorageAccountName> -k <StorageAccountKey> -i <full resource Uri of the current VM>
    

    Você pode usar o exemplo abaixo para executar o cenário de análise de desempenho HPC por 1 minuto e carregar o arquivo TAR resultante para a conta de armazenamento:

    sudo python perfinsights.py -r hpc -d 60S -a -t <StorageAccountName> -k <StorageAccountKey> -i <full resource Uri of the current VM>
    

    Observação

    Antes de executar um cenário, o PerfInsights solicita que o usuário concorde em compartilhar informações de diagnóstico e concordar com o EULA. Use a opção -a ou --accept-disclaimer-and-share-diagnostics para ignorar esses prompts.

    Se você tiver um tíquete de suporte ativo com a Microsoft e executar o PerfInsights de acordo com a solicitação do engenheiro de suporte com quem está trabalhando, certifique-se de fornecer o número do tíquete de suporte usando a opção -s ou --support-request.

Quando a execução for concluída, um novo arquivo tar aparecerá na mesma pasta que PerfInsights, a menos que nenhuma pasta de saída seja especificada. O nome do arquivo é PerformanceDiagnostics_yyyy-MM-dd_hh-mm-ss-fff.tar.gz. Você pode enviar este arquivo para o agente de suporte para análise ou abrir o relatório dentro do arquivo para revisar as descobertas e recomendações.

Revise o relatório de diagnóstico

Dentro do arquivo PerformanceDiagnostics_yyyy-MM-dd_hh-mm-ss-fff.tar.gz, você pode encontrar um relatório HTML que detalha as descobertas do PerfInsights. Para revisar o relatório, expanda o arquivo PerformanceDiagnostics_yyyy-MM-dd_hh-mm-ss-fff.tar.gz e abra o arquivo PerfInsights Report.html.

Guia Visão Geral

A guia Visão geral fornece detalhes básicos de execução e informações sobre a máquina virtual. A guia Descobertas exibe um resumo das recomendações de todas as diferentes seções do relatório PerfInsights.

Captura de tela da guia Visão Geral no Relatório do PerfInsights.

Captura de tela da guia Localizações do Relatório do PerfInsights.

Observação

Descobertas categorizadas como altas são problemas conhecidos que podem causar problemas de desempenho. Descobertas categorizadas como médias representam configurações não ideais que não necessariamente causam problemas de desempenho. Os resultados classificados como baixos são apenas declarações informativas.

Revise as recomendações e links para todas as descobertas altas e médias. Saiba como eles podem afetar o desempenho e também sobre as práticas recomendadas para configurações otimizadas para desempenho.

Guia CPU

A guia CPU fornece informações sobre o consumo de CPU em todo o sistema durante a execução do PerfInsights. As informações sobre os períodos de alto uso da CPU e os principais consumidores de CPU de longa duração serão úteis para solucionar problemas relacionados à alta CPU.

Captura de tela da guia CPU do relatório do PerfInsights.

Guia GPU

A guia GPU fornece informações sobre localizações que serão úteis na solução de problemas relacionados à GPU.

Captura de tela da guia GPU do Relatório do PerfInsights.

Guia Rede

A guia Rede fornece informações sobre configuração e status da rede. Informações sobre descobertas relacionadas à rede, incluindo problemas de InfiniBand no cenário HPC, podem ser encontradas aqui.

Captura de tela da guia Rede.

Guia de armazenamento

A seção Descobertas exibe várias descobertas e recomendações relacionadas ao armazenamento.

As guias Dispositivos de bloco e outras seções relacionadas, como Partições, LVM e MDADM, descrevem como os dispositivos de bloco são configurados e relacionados entre si.

Captura de tela da guia Armazenamento.

Captura de tela da guia MDADM.

Guia Linux

A guia Linux contém informações sobre o hardware e o sistema operacional em execução em sua VM. Os detalhes incluem uma lista de processos em execução e informações sobre o agente convidado, PCI, CPU, GPU, drivers e drivers LIS.

Captura de tela da guia Linux e os detalhes.

Ou em uma VM habilitada para GPU:

Captura de tela da guia GPU na guia Linux e os detalhes.

Próximas etapas

Você pode carregar logs e relatórios de diagnóstico para o Suporte da Microsoft para análise posterior. Quando você trabalha com a equipe de suporte da Microsoft, eles podem solicitar que você transmita a saída gerada pelo PerfInsights para ajudar no processo de solução de problemas.

A captura de tela a seguir mostra uma mensagem semelhante à que você pode receber:

Captura de tela da mensagem de amostra do Suporte da Microsoft。

Siga as instruções na mensagem para acessar o espaço de trabalho de transferência de arquivos. Para segurança adicional, você deve alterar sua senha no primeiro uso.

Depois de entrar, você encontrará uma caixa de diálogo para carregar o arquivo PerformanceDiagnostics_yyyy-MM-dd_hh-mm-ss-fff.tar.gz que foi coletado pelo PerfInsights.

Entre em contato conosco para obter ajuda

Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.