Qu’est-ce que mesurer la performance ? Quels sont ses divers aspects ?

Il est possible de répondre à cette question de manière docte, circonstanciée, et sans doute assez ennuyeuse. Tentons l’économie des moyens. Et s’il ne fallait garder que 3 mesures de la performances ?

Et bien, ce serait :

  • le temps de réponse,
  • le débit sortant,
  • la consommation des ressources hardware.

Le temps de réponse

Bon, celle-là est a peu près évidente. Le temps de réponse, c’est simplement le temps qui s’écoule entre une demande (request) et la réponse (response) correspondante.

Le temps de réponse peut correspondre au point de vue de l’utilisateur. Par exemple, il peut s’agir du temps entre le clic sur un lien et l’apparition de la page de la fiche client.

Le temps de réponse peut également être perçu du point vue du système, et s’appliquer à une application, ou un composant technique, distribué ou non. Il peut ainsi s’agir du temps qui s’écoule entre l’envoi d’une requête SQL et la réception des enregistrements correspondant à la réponse.

Le temps de réponse matérialise donc véritablement la mesure de la vitesse, depuis l’extérieur du système :

  • Si le temps de réponse est suffisamment court, le système est considéré comme performant.
  • S’il est excessivement long, le système est considéré comme insuffisamment performant.
  • Si le temps de réponse est infini (en tout cas à l’échelle du système), le système peut être considéré comme figé.

Le débit sortant

Le débit entrant correspond au nombre de demandes présentées à l’entrée du système par unité de temps. Par exemple, il peut s’agir du nombre de pages Web demandées par seconde à un site Web, ou encore du nombre de requêtes SQL reçues en une seconde par un serveur de base de données.

Le débit sortant correspond au nombre de réponses données par le système toujours par unité de temps. Il s’agira cette fois ci du nombre de pages retournées par le serveur Web en une seconde, ou encore du nombre de résultats de requêtes renvoyés par le serveur de base de données.

Le débit entrant mesure la sollicitation exercée sur le système. Le débit sortant mesure ce que le système est effectivement capable d’honorer. La comparaison du débit entrant et du débit sortant permet une évaluation de la capacité, depuis l’extérieur du système :

  • Si le débit sortant est plus ou moins égal au débit entrant, le système a suffisamment de capacité pour répondre à la sollicitation.
  • Si le débit sortant est inférieur au débit entrant, le système est en sous-capacité.

La consommation des ressources

Le temps de réponse et le débit sortant mesure la performance du système depuis l’extérieur. La consommation des ressources hardware mesure la performance du système depuis l’intérieur. Les ressources hardware sont ainsi les processeurs, la mémoire, le disque et le réseau, etc.

Les trois à la fois

Les 3 mesures ne devraient pas être envisagées de manière indépendante. L’observation d’une seule mesure pourrait ainsi donner une perception erronée.

Sous faible sollicitation, une application peut avoir des temps de réponses très faibles, et en arrière plan, consommer énormément de ressources. Sous sollicitation plus forte, l’application peut en venir à consommer la totalité des ressources. Les temps de réponse et le débit sortant se dégradent alors très fortement, voire s’effondrent.

Une application peut aussi consommer très peu de ressources, mais avoir de mauvais temps de réponse. Il suffit qu’elle passe son temps à attendre un autre système…

La consommation des ressources est un facteur déterminant, si l’on compte jouer sur la scalabilité horizontale et surtout verticale, et aussi l’élasticité. Mais, c’est encore une autre histoire…