Compartilhar via


Solucionar problemas de desempenho da máquina virtual do Azure no Linux ou Windows

Aplica-se a: ✔️ VMs do Linux ✔️ VMs do Windows

Este artigo descreve a solução de problemas genéricos de desempenho da máquina virtual (VM) por meio do monitoramento e observação de gargalos e fornece possíveis soluções para problemas que podem ocorrer. Além do monitoramento, você também pode usar o Perfinsights, que pode fornecer um relatório com recomendações de melhores práticas e principais gargalos em torno de IO/CPU/Memória. O Perfinsights está disponível para VMs Windows e Linux no Azure.

Este artigo explicará como usar o monitoramento para diagnosticar gargalos de desempenho.

Habilitar o diagnóstico de VM por meio do portal do Azure

Para habilitar o diagnóstico de VM:

  1. Vá para a VM.

  2. Na seção Monitoramento, selecione Configurações de diagnóstico.

  3. Selecione uma conta de armazenamento e, em seguida, selecione Habilitar monitoramento no nível do convidado.

    A captura de tela mostra as etapas para habilitar o diagnóstico da VM.

Exibir métricas da conta de armazenamento por meio do portal do Azure (para disco não gerenciado)

Para as VMs que usam discos não gerenciados, o armazenamento é uma camada muito importante quando pretendemos analisar o desempenho de E/S. Para métricas relacionadas ao armazenamento, precisamos habilitar o diagnóstico como uma etapa adicional:

Identifique qual conta de armazenamento (ou contas) sua VM está usando selecionando a VM:

  1. No portal do Azure, selecione sua VM.
  2. Em Configurações, selecione Disco e localize a conta de armazenamento em que o disco está salvo.
  3. Navegue até a conta de armazenamento e selecione Métricas.

Identificar gargalos de desempenho

Assim que terminarmos o processo de configuração inicial das métricas necessárias e habilitarmos o diagnóstico para a VM e a conta de armazenamento relacionada, podemos mudar para a fase de análise.

Acesse o monitoramento

No portal do Azure, selecione a VM do Azure que você deseja investigar, selecione Métricas na seção Monitoramento e selecione uma métrica.

Captura de tela que mostra como abrir a página Uso e custos estimados.

Linhas do tempo de observação

Para identificar se você tem algum gargalo de recursos, revise seus dados. Se você achar que sua máquina está funcionando bem, mas foi relatado que o desempenho foi degradado recentemente, revise um intervalo de tempo de dados que englobe dados de métricas de desempenho antes da alteração relatada, durante e após o problema.

Verifique se há gargalo da CPU

A captura de tela mostra as etapas para verificar o gargalo da CPU.

  1. Defina o intervalo de tempo.
  2. Em Métrica, selecione Porcentagem da CPU.

Ao analisar problemas de desempenho, esteja ciente das tendências e entenda se elas o afetam. Nas próximas seções, usaremos os gráficos de monitoramento do portal para mostrar as tendências. Eles também podem ser úteis para referenciar diferentes comportamentos de recursos no mesmo período de tempo. Para personalizar os gráficos, clique em Plataforma de dados do Azure Monitor.

Spiking – Spiking pode estar relacionado a uma tarefa agendada/evento conhecido. Se você puder identificar a tarefa, determine se ela é executada no nível de desempenho necessário. Se o desempenho for aceitável, talvez não seja necessário aumentar os recursos.

Pico e Constante – Geralmente indica uma nova carga de trabalho. Se não for uma carga de trabalho reconhecida, habilite o monitoramento na VM para descobrir qual processo (ou processos) causa o comportamento. Depois que o processo for reconhecido, determine se o aumento do consumo está sendo causado por código ineficiente ou consumo normal. Se for consumo normal, decida se o processo opera no nível de desempenho necessário.

Constante – determine se sua VM sempre foi executada nesse nível ou se só foi executada nesse nível desde que os diagnósticos foram ativados. Em caso afirmativo, identifique o processo (ou processos) que está causando o problema e considere adicionar mais desse recurso.

Aumento constante – Um aumento constante no consumo geralmente é um código ineficiente ou um processo que exige mais carga de trabalho do usuário.

Correção de alta utilização da CPU

Se o aplicativo ou processo não estiver sendo executado de maneira ideal e o uso da CPU permanecer acima de 95%, você poderá executar uma das seguintes tarefas:

  • Para alívio imediato - Aumente o tamanho da VM para um tamanho com mais núcleos
  • Entenda o problema – localize o aplicativo/processo e solucione o problema de acordo.

Se você aumentou a VM e a CPU ainda está executando 95%, determine se essa configuração está oferecendo melhor desempenho ou maior taxa de transferência do aplicativo para um nível aceitável. Caso contrário, solucione o problema desse aplicativo\processo individual.

Você pode usar o Perfinsights para Windows ou Linux para analisar qual processo está gerando o consumo de CPU.

Verificar se há gargalo de memória

Para ver as métricas:

  1. Adicione uma seção.
  2. Adicione um Bloco.
  3. Abra a Galeria.
  4. Selecione o uso de memória e arraste. Quando o bloco estiver encaixado, clique com o botão direito e selecione 6x4.

O uso de memória mostra quanta memória está sendo consumida com a VM. Entenda a tendência e se ela mapeia o momento em que você vê problemas. Você sempre deve ter mais de 100 MB de memória disponível.

Pico e consumo constante/constante - A alta utilização de memória pode não ser a causa do mau desempenho, pois alguns aplicativos, como mecanismos de banco de dados relacional, alocam uma grande quantidade de memória e essa utilização pode não ser significativa. No entanto, se houver vários aplicativos com muita memória, você poderá observar um desempenho ruim devido à contenção de memória, causando corte e paginação/troca para o disco. Esse baixo desempenho geralmente é uma causa perceptível de impacto no desempenho do aplicativo.

Constantemente aumentando o consumo – Um possível aplicativo 'aquecendo', esse consumo é comum entre os mecanismos de banco de dados inicializando. No entanto, também pode ser um sinal de vazamento de memória em um aplicativo. Identifique o aplicativo e entenda se o comportamento é esperado.

Uso de arquivo de paginação ou troca – Verifique se você está usando o arquivo de paginação do Windows (localizado em D:) ou o arquivo de troca do Linux (localizado em/dev/sdb) está sendo muito usado. Se você não tiver nada nesses volumes, exceto esses arquivos, verifique se há leituras/gravações altas nesses discos. Esse problema é indicativo de condições de pouca memória.

Correção de alta utilização de memória

Para resolver a alta utilização de memória, execute qualquer uma das seguintes tarefas:

  • Para alívio imediato ou uso de página ou arquivo de troca - Aumente o tamanho da VM para uma com mais memória e, em seguida, monitore.
  • Entenda o problema – localize aplicativos/processos e solucione problemas para identificar aplicativos que consomem muita memória.
  • Se você conhece o aplicativo, veja se a alocação de memória pode ser limitada.

Se depois de atualizar para uma VM maior, você descobrir que ainda tem um aumento constante constante até 100%, identifique o aplicativo/processo e solucione o problema.

Você pode usar Perfinsights para Windows ou Linux para analisar qual processo está conduzindo o consumo de memória.

Verificar se há gargalo de disco (para disco não gerenciado)

Para verificar o subsistema de armazenamento da VM, verifique os diagnósticos no nível da VM do Azure usando os contadores em Diagnósticos de VM e também os Diagnósticos de Conta de Armazenamento.

Para solução de problemas específicos da VM, você pode usar o Perfinsights para Windows ou Linux, que pode ajudar a analisar qual processo está conduzindo as E/S.

Observe que não temos contadores para contas de armazenamento premium e com redundância de zona. Para problemas relacionados a esses contadores, abra um caso de suporte.

Exibindo diagnósticos de conta de armazenamento no monitoramento

Para trabalhar nos itens abaixo, acesse a conta de armazenamento da VM no portal:

A captura de tela mostra as etapas para exibir o diagnóstico de conta de armazenamento no monitoramento.

  1. Defina o intervalo de tempo.
  2. Defina o namespace de métrica como blob.
  3. Defina Métrica como Disponibilidade.

Para identificar problemas com armazenamento, observe as métricas de desempenho do diagnóstico de conta de armazenamento e do diagnóstico de VM.

Para cada verificação abaixo, procure as principais tendências quando os problemas ocorrerem dentro do intervalo de tempo do problema.

Verifique a disponibilidade de armazenamento do Azure – adicione a métrica da conta de armazenamento: disponibilidade

Se você observar uma queda na disponibilidade, pode haver um problema com a plataforma, verifique o Status do Azure. Se nenhum problema for mostrado lá, abra uma nova solicitação de suporte.

Verifique o tempo limite de armazenamento do Azure - adicione as métricas da conta de armazenamento

  • ClientTimeOutError
  • ServerTimeOutError
  • AverageE2ELatency
  • AverageServerLatency
  • TotalRequests

Os valores nas métricas *TimeOutError indicam que uma operação de E/S demorou muito e atingiu o tempo limite. Trabalhar nas próximas etapas ajudará a identificar possíveis causas.

AverageServerLatency aumenta ao mesmo tempo em TimeOutErrors pode ser um problema de plataforma. Faça uma nova solicitação de suporte nessa situação.

AverageE2ELatency representa a latência do cliente. Verifique como o IOPS é executado pelo aplicativo. Procure um aumento ou uma métrica TotalRequests constantemente alta. Essa métrica representa IOPS. Se você está começando a atingir os limites da conta de armazenamento ou VHD único, a latência pode estar relacionada à limitação.

Verifique a limitação de armazenamento do Azure - adicione as métricas da conta de armazenamento: ThrottlingError

Os valores de limitação indicam que você está sendo limitado no nível da conta de armazenamento, o que significa que você está atingindo o limite de IOPS da conta. Você pode determinar se está atingindo o limite de IOPs verificando a métrica TotalRequests.

Observe que cada VHD tem um limite de 500 IOPS ou 60 MBits, mas está vinculado ao limite cumulativo de 20.000 IOPS por conta de armazenamento.

Com essa métrica, você não pode dizer qual blob está causando a limitação e quais são afetados por ela. No entanto, você está atingindo os limites de IOPS ou de entrada/saída da conta de armazenamento.

Para identificar se você está atingindo o limite de IOPS, entre no diagnóstico da Conta de Armazenamento e verifique o TotalRequests, observando se você está se aproximando de 20 mil TotalRequests. Identifique uma mudança no padrão, se você está vendo o limite pela primeira vez ou se esse limite ocorre em um determinado momento.

Com novas ofertas de disco no armazenamento Standard, os limites de IOPS e throughput podem diferir, mas o limite cumulativo da conta de armazenamento padrão é 20.000 IOPS (o armazenamento Premium tem limites diferentes na conta ou no nível do disco). Leia mais sobre diferentes ofertas de disco de armazenamento padrão e limites por disco:

Referências

A largura de banda da conta de armazenamento é medida pelas métricas da conta de armazenamento: TotalIngress e TotalEgress. Você tem limites diferentes para largura de banda, dependendo do tipo de redundância e das regiões:

Verifique TotalIngress e TotalEgress em relação aos limites de entrada e saída para o tipo e região de redundância da conta de armazenamento.

Verifique os limites de taxa de transferência dos VHDs anexados à VM. Adicione a leitura e gravação do disco de métricas da VM.

Novas ofertas de disco no armazenamento Standard têm diferentes IOPS e limites de taxa de transferência (IOPS não são expostos por VHD). Observe os dados para ver se você está atingindo os limites de taxa de transferência combinada MB do(s) VHD(s) no nível da VM usando Disk Read and Write e, em seguida, otimize sua configuração de armazenamento de VM para escalar além dos limites de VHD único. Leia mais sobre diferentes ofertas de disco de armazenamento padrão e limites por disco:

Alta utilização de disco/remediação de latência

Reduza a latência do cliente e otimize a E/S da VM para escalar além dos limites de VHD

Reduza a limitação

Se atingir os limites superiores das contas de armazenamento, rebalanceie os VHDs entre as contas de armazenamento. Consulte Destinos de escalabilidade e desempenho do armazenamento do Azure.

Aumente a taxa de transferência e reduza a latência

Se você tiver um aplicativo sensível à latência e precisar de alta taxa de transferência, migre seus VHDs para o armazenamento Azure Premium usando a VM das séries DS e GS.

Estes artigos discutem os cenários específicos:

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.