Il y a quelques temps j’avais écrit un billet sur les power plans de Windows et l’impact que cela pouvait avoir sur SQL Server. Il y a quelques temps j’ai pu l’observer chez un de mes clients qui souffraient de problèmes de performances de requêtes après avoir acheté un nouveau serveur. Voici ce que nous avons pu voir en comparant deux configurations serveurs différentes.
Je précise que seule la configuration des processeurs nous intéresse ici car les performances des requêtes ne dépendaient pas d’un manque de mémoire (l’ensemble de la base tenait en mémoire avec 130Go de mémoire totale et 10Go de données) ou des performances disques. Les plans d’exécutions utilisés après analyse étaient strictement les mêmes. Cependant une différence au niveau du temps CPU a été relevé (après avoir utilisé les options de statistiques SET STATISTICS IO et SET STATISTICS TIME) Une requête de référence ayant été prise pour comparaison voici les résultats de temps d’exécution sur chaque serveur (en désactivant le parallélisme) :
Serveurs | Processeurs | Temps CPU requête |
Serveur 1 | Processeurs Intel Xeon X7460 @2.66GHz | 12344 ms |
Serveur 2 | Processeurs Intel Xeon X7560 @2.27Ghz | 21892 ms |
En regardant sur le site du constructeur on peut vite remarquer qu’à priori les processeurs (Intel Xeon X7560) devraient donner des résultats au moins similaires aux processeurs (Intel X7460) voir plus (en utilisant l’outil de comparaison du site).
Le temps CPU multiplié pratiquement par deux m’a donc incité à utiliser l’outil CPU-Z pour voir les caractéristiques réelles des processeurs sur chaque serveur.
Â
Sur le serveur 1 : Intel Xeon X7460 @ 2.66Ghz
Â
Sur le serveur 2 : Intel Xeon X7560 @ 2.27Ghz
On remarque rapidement que la vitesse réelle des processeurs n’est pas celle annoncée sur les spécifications du constructeur pour le serveur 2. Le ratio est donc de 2.27Ghz / 1.064Ghz soit environ 2. Curieusement on observe le même ratio entre la vitesse des requêtes et la vitesse des processeurs. La modification des power plans pour les performances n’avait visiblement rien changé. Après avoir investigué dans le BIOS on a pu voir que les options d’économies étaient activés. Après avoir réglé ce souci nous nous sommes retrouvés sur des temps d’exécutions plus bas pour le serveur 2 (de l’ordre de 10 000 ms). Enjoy !!
David BARBARIN (Mikedavem)
MVP SQL Server