Estadísticas: Tiempo de CPU vs Tiempo transcurrido. ¿Qué es más importante?

9

Cuando se ajusta el rendimiento, lo que es más importante:

  • ¿Tiempo de CPU o tiempo transcurrido?
  • ¿Hay escenarios donde uno de ellos es más importante que el otro?

Un ejemplo: mientras se ajusta el rendimiento, el tiempo de CPU se reducirá en ~ 38%, pero el tiempo transcurrido aumenta en ~ 22%. ¿Es esto una mejora ?

Introduzca el código
fuente
55
¿Importante para quién? Sus requisitos pueden diferir de los míos. Para la mayoría de mis clientes, el tiempo transcurrido (cantidad de tiempo que los usuarios pasan esperando) es mucho más importante que el tiempo de CPU, por lo que no, eso no sería una mejora. Sus CPU están haciendo menos trabajo pero, con toda probabilidad, se están utilizando más recursos escasos para compensar (generalmente E / S). Es posible que tenga tipos de contadores de TI que valoran el tiempo de CPU durante el tiempo transcurrido, porque están sintonizados para alertas en picos de CPU o lo que sea que tenga. Tienen necesidades diferentes a las de sus usuarios finales, pero es posible que necesite satisfacer ambas. No creo que haya una respuesta fácil.
Aaron Bertrand
Si la consulta se ejecuta con mucha frecuencia, ¿puede la CPU reducida generar un tiempo general reducido?
EnterTheCode
Con el ejemplo que diste, es poco probable.
Aaron Bertrand

Respuestas:

14

El tiempo de CPU es la cantidad de tiempo de procesador que tarda el proceso. Esto no indica duración . El "tiempo transcurrido" representa la duración total de la tarea. Si una tarea dada usa un paralelismo de 8 (es decir, 8 subprocesos), y cada subproceso se usa a una velocidad del 100% durante toda la duración de la tarea, el tiempo de CPU podría ser de 8000 ms, mientras que el tiempo transcurrido solo sería de 1000 ms.

Por lo tanto, un "Tiempo transcurrido" más corto indica un tiempo de respuesta más rápido.

Es posible que desee un tiempo de CPU más corto y un tiempo transcurrido más largo si le preocupa la presión de la CPU y no le importa la experiencia del usuario.

Puede aceptar un tiempo de CPU más largo si eso resulta en una caída en el tiempo transcurrido, ya que eso podría indicar que el usuario está esperando menos, a expensas de una mayor utilización de la CPU.

Podría decirse que la métrica más importante para el ajuste de consultas serían los tiempos de espera .

Max Vernon
fuente
4

... mientras se ajusta el rendimiento, el tiempo de CPU se reducirá en ~ 38%, pero el tiempo transcurrido aumenta en ~ 22%. ¿Es esto una mejora?

Esto depende completamente de lo que esté optimizando y por qué. En el sentido más común, la velocidad de salida de la consulta, esto no es una mejora, como señaló Max Vernon en su respuesta.

Sin embargo, si su sistema está vinculado a la CPU, esto sería una mejora, ya que disminuyó la carga de la CPU. De hecho, si este fuera el caso, el resultado final también podría significar un retorno más rápido del conjunto de resultados.

Y si su sistema estaba vinculado al disco o a la memoria, este sería un resultado neutral, ya que no hay indicios de que haya mejorado o degradado estas medidas.

Entonces, el 95% de las veces, Max es absolutamente correcto, esto no es una mejora. En los pocos casos restantes, puede ser una mejora.

Riendo Vergil
fuente