Estatísticas: Tempo da CPU x Tempo Decorrido. O que é mais importante?


9

Ao ajustar o desempenho, o que é mais importante:

  • Tempo de CPU ou tempo decorrido?
  • Existem cenários em que um deles é mais importante que o outro?

Um exemplo: ao ajustar o desempenho, o tempo da CPU será reduzido em ~ 38%, mas o Tempo decorrido aumentará em ~ 22%. Isso é uma melhoria ?


5
Importante para quem? Seus requisitos podem diferir dos meus. Para a maioria dos meus clientes, o tempo decorrido (tempo que os usuários passam esperando) é muito mais importante que o tempo da CPU; portanto, isso não seria uma melhoria. Suas CPUs estão fazendo menos trabalho, mas, com toda a probabilidade, recursos mais escassos estão sendo usados ​​para compensar (normalmente E / S). Você pode ter tipos de contadores de bean de TI que valorizam o tempo da CPU ao longo do tempo decorrido, porque são sintonizados para alertas sobre picos de CPU ou o que você tem. Eles têm necessidades diferentes dos seus usuários finais, mas pode ser necessário satisfazer ambos. Eu não acho que haja uma resposta fácil.
Aaron Bertrand

Se a consulta for executada com muita frequência, a CPU reduzida pode resultar em um tempo reduzido geral?
EnterTheCode

Com o exemplo que você deu, improvável.
Aaron Bertrand

Respostas:


14

Tempo da CPU é a quantidade de tempo do processador gasto pelo processo. Isso não indica duração . "Tempo decorrido" representa a duração total da tarefa. Se uma determinada tarefa usar um paralelismo de 8 (ou seja, 8 threads), e cada thread for usado a uma taxa de 100% durante toda a duração da tarefa, o tempo da CPU poderá ser 8000ms, enquanto o Tempo decorrido será de apenas 1000ms.

Portanto, um "Tempo decorrido" mais curto indica um tempo de resposta mais rápido.

Você pode querer um tempo de CPU mais curto e um tempo decorrido mais longo, se estiver preocupado com a pressão da CPU e não se importar com a experiência do usuário.

Você pode aceitar um tempo maior da CPU se isso resultar em uma queda no tempo decorrido, pois isso pode indicar que o usuário está esperando menos, às custas de uma maior utilização da CPU.

Indiscutivelmente, a métrica mais importante para o ajuste de consultas seria o tempo de espera .


4

... ao ajustar o desempenho, o tempo da CPU será reduzido em ~ 38%, mas o tempo decorrido aumentará em ~ 22%. Isso é uma melhoria?

Isso depende inteiramente do que você está otimizando e por quê. No sentido mais comum - velocidade da saída da consulta - isso não é uma melhoria, como Max Vernon observou em sua resposta.

No entanto, se o seu sistema estiver ligado à CPU, isso seria uma melhoria, pois você diminuiu a carga da CPU. De fato, se esse fosse o caso, o resultado final também poderia significar um retorno mais rápido do conjunto de resultados.

E se o seu sistema estivesse ligado ao disco ou à memória, seria um resultado neutro, pois não há indicação de que tenha melhorado ou degradado essas medidas.

Então, 95% das vezes, Max está absolutamente correto - isso não é uma melhoria. Nos poucos casos restantes, pode ser uma melhoria.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.