Pourquoi mesurer la performance avec le CPU est une erreur ?

Reading Time: < 1 minute

Lors de sa présentation Upscale 2018 en mars dernier, [Brendan Gregg]( http://www.brendangregg.com/), ingénieur senior performance chez Netflix, explique pourquoi le CPU n’est pas une bonne métrique pour mesurer la performance.

Brendan Gregg, Ingénieur performance chez Netflix : “Everyone uses %CPU to measure performance, but everyone is wrong”

C’est l’occasion pour nous de revenir sur ce que nous poussons depuis longtemps : comment mesurer la performance et la consommation de ressource de façon fiable ?

Brendan Gregg explique que le taux CPU peut indiquer des fausses informations. Par exemple, un CPU busy n’indique pas forcément que le CPU est occupé à faire des calculs mais qu’il est en attente d’informations. Il est donc nécessaire d’utiliser des outils plus poussés pour analyser ce qui se passe dans les couches basses du code. Brendan Gregg conclut même que cette problématique va empirer avec l’accélération de la vitesse de processeur.

Nous avons observé ce phénomène par le biais de notre R&D. En effet, un taux CPU élevé ne veut pas nécessairement dire que le CPU est sollicité et inversement un CPU bas pourrait cacher une surconsommation provenant d’une autre cachette.

Le problème est encore plus présent dans la mobilité. En effet, les plateformes actuelles sont hétérogènes : CPU, GPU, Radio, interfaces multiples … Il est donc complexe de suivre la réelle performance de ses plateformes et il est nécessaire d’utiliser des outils de profiling divers et complexes.

Notre approche chez Greenspector est différente, nous proposons d’utiliser l’énergie comme une métrique plus fiable. Tout composant sollicité consomme de l’énergie, suivre la consommation d’énergie va permettre de détecter des sur-consommations de ressources.

Pour plus d’informations, nous vous invitons à lire notre article “Pourquoi devriez-vous mesurer la consommation énergétique de votre logiciel ?