
Abaixo estão duas imagens do nosso 'Plano de Serviço de Aplicativo' do Azure, que hospeda nosso aplicativo. Recentemente, tentamos aumentar a escala, mas isso não resolveu o problema visto abaixo.
Nosso 'Max CPU' atinge o pico ao longo do dia, todos os dias... mas esta é a agregação MAX. Estes são picos transitórios. Enquanto isso, nossa agregação AVG de porcentagem de CPU é normal (segunda foto).
É esperado que haja picos transitórios no máximo da CPU, como visto na primeira imagem, ou isso é anormal?
Obrigado!
Responder1
É uma regra de agregação, não o uso real. Quando as métricas são coletadas, elas possuem (para CPU) uma única métrica: carga atual da CPU. Se as métricas forem coletadas 6 vezes por minuto, haverá 6 valores. Quando um intervalo grande é mostrado, geralmente não mostra todos os dados, mas realiza a agregação. Fe se a agregação for inferior a um intervalo de 10 minutos, todos os dados neste intervalo serão recolhidos em um número. Existem diferentes funções para fazer isso: min, max, avg, median, etc.
Uma distância é a média (seu segundo gráfico). Outra é mostrar o pico máximo encontrado nesse intervalo (seu primeiro caractere). A agregação nas médias tende a ocultar os picos, a agregação nos máximos tende a aumentar o uso dos picos de forma irracional. Se você tiver uma janela de agregação de 10 minutos e durante esse momento algum processo consumiu 100% por 0,1 segundo, e esse 0,1 segundo foi o momento em que as métricas foram coletadas, você terá um intervalo de 10 minutos de 100% de uso da CPU (quando 'máximo' agregação é usada).
Responder2
Isso depende muito do aplicativo em execução. Se estiver realizando um trabalho intensivo de CPU, provavelmente aumentará o uso da CPU o máximo possível. A diferença que você deve ver ao atualizar o hardware. É que as tarefas nas quais está trabalhando serão concluídas mais rapidamente.
Não sei nada sobre o aplicativo que você está tentando executar. E, portanto, não sei se é um aplicativo multithread que parece funcionar como deveria durante esses picos ou se é um aplicativo de thread único que parece travar durante o pico? No primeiro caso eu não me incomodaria muito. Mas, no segundo caso, eu provavelmente tentaria atualizar a CPU cada vez mais ou, se tivesse acesso ao código-fonte do aplicativo, tentaria ver se era possível otimizar a tarefa intensiva da CPU.