Statistiques: temps CPU vs temps écoulé. Quoi de plus important?

9

Lors du réglage des performances, ce qui est plus important:

  • Temps CPU ou temps écoulé?
  • Y a-t-il des scénarios où l'un d'eux est plus important que l'autre?

Un exemple: tandis que l'optimisation des performances, le temps CPU diminue de ~ 38% mais le temps écoulé augmente de ~ 22%. Est-ce une amélioration ?

Entrer le code
la source
5
Important pour qui? Vos besoins peuvent différer des miens. Pour la plupart de mes clients, le temps écoulé (le temps que les utilisateurs passent à attendre) est beaucoup plus important que le temps CPU, donc non, ce ne serait pas une amélioration. Vos processeurs font moins de travail mais, selon toute vraisemblance, des ressources plus rares sont utilisées pour compenser (généralement les E / S). Vous pouvez avoir des types de compteurs de beans informatiques qui valorisent le temps CPU par rapport au temps écoulé, car ils sont réglés pour recevoir des alertes sur les pics CPU ou ce que vous avez. Ils ont des besoins différents de ceux de vos utilisateurs finaux, mais vous devrez peut-être satisfaire les deux. Je ne pense pas qu'il y ait de réponse facile.
Aaron Bertrand
Si la requête est exécutée très souvent, le CPU réduit peut-il entraîner un temps global réduit?
EnterTheCode
Avec l'exemple que vous avez donné, peu probable.
Aaron Bertrand

Réponses:

14

CPU Time est la quantité de temps processeur nécessaire au processus. Cela n'indique pas la durée . "Temps écoulé" représente la durée totale de la tâche. Si une tâche donnée utilise un parallélisme de 8 (c'est-à-dire 8 threads) et que chaque thread est utilisé à un taux de 100% sur toute la durée de la tâche, le temps processeur pourrait être de 8000 ms, tandis que le temps écoulé ne serait que de 1000 ms.

Par conséquent, un «temps écoulé» plus court indique un temps de réponse plus rapide.

Vous pouvez souhaiter un temps processeur plus court et un temps écoulé plus long si vous êtes préoccupé par la pression du processeur et ne vous souciez pas de l'expérience utilisateur.

Vous pouvez accepter un temps processeur plus long si cela entraîne une baisse du temps écoulé, car cela peut indiquer que l'utilisateur attend moins, au détriment d'une utilisation plus élevée du processeur.

On peut dire que la métrique la plus importante pour le réglage des requêtes serait les temps d'attente .

Max Vernon
la source
4

... tandis que l'optimisation des performances réduit le temps CPU de ~ 38% mais le temps écoulé augmente de ~ 22%. Est-ce une amélioration?

Cela dépend entièrement de ce que vous optimisez et pourquoi. Dans le sens le plus courant - vitesse de sortie des requêtes - ce n'est pas une amélioration, comme Max Vernon l'a noté dans sa réponse.

Cependant, si votre système est lié au processeur, ce serait une amélioration, car vous avez diminué la charge du processeur. En fait, si tel était le cas, le résultat final pourrait également signifier un retour plus rapide de l'ensemble de résultats.

Et si votre système était lié au disque ou à la mémoire, ce serait un résultat neutre, car rien n'indique qu'il ait amélioré ou dégradé ces mesures.

Donc, 95% du temps, Max est absolument correct - ce n'est pas une amélioration. Dans les quelques cas restants, il peut s'agir d'une amélioration.

Vergil qui rit
la source