Solucionar problemas de desempenho da máquina virtual do Azure no Linux ou 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.

Ativando o monitoramento

Monitoramento de máquina virtual IAAS do Azure

Para monitorar a VM convidada, use o Monitoramento de VM do Azure, que o alertará sobre determinadas condições de recursos de alto nível. Para verificar se você tem o diagnóstico de VM habilitado, consulte Visão geral dos logs de recursos do Azure. Se você vir o seguinte, provavelmente não tem o diagnóstico ativado:

A captura de tela mostra a mensagem O monitoramento pode não estar habilitado.

Habilite o diagnóstico de VM por meio do portal do Microsoft Azure

Para habilitar o diagnóstico de VM:

  1. Vá para a VM.

  2. Clique em Configurações de Diagnóstico.

  3. Selecione a conta de armazenamento e clique em Habilitar monitoramento em nível de convidado.

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

Você pode verificar a conta de armazenamento usada para configuração de diagnóstico na guia Agente em Configurações de diagnóstico.

A captura de tela destaca a conta de armazenamento na guia Agente.

Habilite o diagnóstico de conta de armazenamento por meio do portal do Azure

O armazenamento é uma camada muito importante quando pretendemos analisar o desempenho de E/S para uma máquina virtual no Azure. Para métricas relacionadas ao armazenamento, precisamos habilitar o diagnóstico como uma etapa adicional. Isso também pode ser ativado, se quisermos apenas analisar os contadores relacionados ao armazenamento.

  1. Identifique qual conta de armazenamento (ou contas) sua VM está usando selecionando a VM. Clique em Configurações e, em seguida, clique em Discos.

    A captura de tela mostra o disco do sistema operacional em discos.

  2. No portal, vá para a conta de armazenamento (ou contas) da VM e siga as seguintes etapas:

    1. Clique na visão geral da conta de armazenamento que você encontrou na etapa acima.
    2. Métricas padrão seriam mostradas.

    A captura de tela mostra as métricas padrão em Visão geral.

  3. Clique em qualquer uma das métricas, que mostrará outra folha com mais opções para configurar e adicionar métricas.

    A captura de tela mostra as etapas para adicionar e configurar métricas.

Para configurar essas opções:

  1. Selecione Métricas.
  2. Selecione o Recurso (conta de armazenamento).
  3. Selecione o Namespace
  4. Selecione Métrica.
  5. Selecione o tipo de Agregação
  6. Você pode fixar essa visualização no painel.

Observação de gargalos

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.

Acessando o monitoramento

Selecione VM do Azure que você deseja investigar e selecione Monitoramento.

A captura de tela mostra o painel Monitoramento.

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. Edite o gráfico.
  2. Defina o intervalo de tempo.
  3. Em seguida, você precisa adicionar no contador: CPU Percentage Guest OS
  4. Salvar.

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 seu aplicativo ou processo não estiver sendo executado no nível de desempenho correto e você observar uma constante de utilização de CPU de 95%, 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.

Verifique 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.

Verifique se há gargalo no disco

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. Edite o gráfico de monitoramento.
  2. Defina o intervalo de tempo.
  3. Adicione os contadores descritos nas etapas abaixo.
  4. Salve as alterações.

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 estão sendo executados os IOPS pela aplicação. 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 para limitação indicam que você está sendo limitado no nível da conta de armazenamento, o que significa que 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.