Eu tenho trabalhado recentemente na compreensão dos dados ou métricas armazenados no arquivo de eventos de eventos estendidos da integridade do sistema.
Estamos tentando implementar a coleta de dados de métricas de desempenho usando a integridade do sistema, conforme fornecido aqui
Existem relatórios que fornecem métricas como CPU UTILIZATION, outras utilizações de processos, etc., sendo coletadas do evento de integridade do sistema chamado
scheduler_monitor_system_health_ring_buffer_recorded
Não consigo entender para alguns dos meus servidores ocupados por que o campo "process_utilization", listado no relatório como utilização da CPU do SQL, fica na maioria das vezes acima de 100. No horário de pico, ele varia entre 120-160 e por causa do qual o relatório é sempre mostrando a CPU acima de 100, embora, quando verifiquei no monitor de atividade dos servidores, esse nunca seja o caso.
Eu levantei esse problema no Github, mas parece não ter solução ou resposta.
Portanto, minha pergunta seria
Como posso obter um número preciso de utilização da CPU SQL para meus servidores usando o buffer de integridade do sistema gravado?
O relatório também mostra o contador para abaixo de 2 campos calculados por seu relatório
100-System_idle-process_utilization como OtherProcessUtil
100-system_idle como SystemUtil
Para que esses OtherProcessUtil e SystemUtil são necessários / úteis?
- Também vejo a utilização da memória sempre mostrando como 100. Isso também não parece correto. Alguém já reparou?
Outras ferramentas como Idera e sentry [que testei] não mostram o uso da CPU acima de 100% para os mesmos servidores. Fiz uma comparação lado a lado para a mesma carga.