Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Sélection pratique du processeur pour les charges de travail OLTP SQL Server 2014/2016

Probablement pas le processeur que vous recherchez.

Imaginez que vous venez d'obtenir l'approbation de la direction pour un nouveau serveur de base de données sur site qui exécutera une charge de travail OLTP critique avec SQL Server 2014 Enterprise Edition exécuté sur Windows Server 2012 R2 Standard Edition. Ce nouveau serveur remplacera un ancien serveur Dell PowerEdge R910 qui exécute SQL Server 2008 R2 Enterprise Edition sur Windows Server 2008 R2 Enterprise Edition. Ce serveur existant dispose de quatre processeurs Intel Xeon X7560 Nehalem-EX 45 nm (ce qui vous donne 32 cœurs physiques au total dans le système) et dispose de 512 Go de RAM, ce qui était une configuration premium lors de son achat en 2010.

Pour cet exemple, vous disposez d'un budget de licences matérielles et logicielles quelque peu limité pour la mise à niveau de la plate-forme. Vous souhaitez passer à SQL Server 2014 Enterprise Edition, sur un nouveau serveur avec de bien meilleures performances de processeur à un seul thread (puisque vous avez une charge de travail OLTP) et une capacité de processeur globale plus élevée, tout en minimisant vos coûts de matériel et de licence SQL Server.

Compte tenu de ces informations, comment procéderiez-vous pour décider du modèle de serveur à choisir et du processeur exact à sélectionner ? Laisseriez-vous quelqu'un du service informatique. prendre ces décisions, ou vous impliqueriez-vous dans le processus d'évaluation et de prise de décision ? Plutôt que de laisser "Shon le gars du serveur" décider, je veux vous montrer une méthode simple et pratique pour comprendre cela, en utilisant les scores de référence TPC-E, quelques arithmétiques simples et un peu de bon sens.

La première étape consiste à consulter en ligne les scores des résultats du benchmark TPC-E, à la recherche du système équivalent le plus proche de votre système existant. Si vous avez de la chance, vous trouverez une soumission de référence officielle qui correspond exactement à votre système. Dans notre cas, j'ai trouvé une soumission du 10 avril 2010 qui correspond exactement à notre ancien système. Ce système Dell PowerEdge R910 avait un score de débit TPC-E réel de 1 933,96, avec quatre processeurs Intel Xeon X7560 à huit cœurs. Le score de débit TPC-E réel est une bonne mesure de la capacité globale du processeur du système, vous donnant une indication approximative du nombre de requêtes simultanées qu'il peut gérer (en supposant que vous n'avez pas de goulots d'étranglement liés au stockage ou à la mémoire).

La deuxième étape consiste à prendre le score de débit TPC-E réel pour ce système et à le diviser par le nombre de cœurs de processeur physiques dans le système, pour avoir une idée des performances du processeur à un seul thread pour le processeur particulier dans le système de référence. . Pour ce système, nous diviserions simplement 1 933,96 par 32 cœurs physiques, pour arriver à un "score par cœur" de 60,44. L'Intel Xeon X7560 a une vitesse d'horloge de base de 2,26 GHz, avec une vitesse d'horloge Turbo de 2,66 GHz. Il dispose d'un cache L3 partagé de 24 Mo et d'une vitesse Intel QPI de 6,4 GT/s. Quick Path Interconnect (QPI) est une interconnexion point à point entre le CPU et le contrôleur de mémoire intégré, donc avoir des vitesses QPI plus élevées signifie un accès mémoire plus rapide.

La troisième étape consiste à rechercher des résultats de référence TPC-E pour les systèmes et processeurs de la génération actuelle, en essayant de trouver un résultat pour un système qui soit à peu près équivalent au type de nouveau système que vous envisagez. Malheureusement, cela sera parfois difficile parce que les fournisseurs de serveurs n'ont pas soumis autant de nouveaux systèmes qu'auparavant, et parce qu'ils soumettent toujours des systèmes qui utilisent le processeur "phare", le plus grand nombre de cœurs pour une génération et une famille de processeurs données. Cela rend le score de débit TPC-E réel plus élevé, mais rend également un système utilisant ce processeur beaucoup plus coûteux en licence pour SQL Server en raison du nombre de cœurs plus élevé. Un autre problème avec ces modèles de processeurs "phares" est qu'ils échangent généralement un nombre de cœurs physiques plus élevé pour des vitesses d'horloge de base inférieures, de sorte que vous finissez par payer des coûts de licence beaucoup plus élevés et que vous obtenez en fait des performances de processeur monothread inférieures.

La sagesse conventionnelle voudrait qu'un nouveau serveur à quatre sockets remplace votre serveur à quatre sockets existant. Avec les serveurs modernes à deux sockets, cela peut ne plus être nécessaire, selon l'ampleur de votre charge de travail. Il y a eu une période, du début 2012 au début 2014, où les nouveaux processeurs de serveur de la famille Xeon E5 à deux sockets étaient beaucoup plus rapides pour les performances monothread que les nouveaux processeurs de serveur de la famille Xeon E7 à quatre sockets. Cet écart de performances s'est considérablement réduit lorsque la famille Xeon E7 v2 Ivy Bridge-EX est sortie début 2014. Depuis lors, les familles E5 et E7 sont encore plus proches maintenant puisque les deux utilisent la microarchitecture Haswell.

Compte tenu de cette quasi-parité des performances du processeur, le choix de votre modèle de serveur se résume à la capacité globale de la mémoire, du processeur et des E/S. Les serveurs actuels à deux sockets sont pratiquement limités à 768 Go de RAM avec des DIMM de 32 Go, tandis que les serveurs actuels à quatre sockets peuvent avoir 3 To de RAM avec des DIMM de 32 Go. La plupart des clients que je rencontre peuvent exécuter confortablement leur charge de travail sur 768 Go de RAM, mais quelques-uns ont en fait besoin de plus que cela. Les serveurs à deux et à quatre sockets peuvent utiliser des processeurs Haswell avec 18 cœurs physiques chacun, vous avez donc une limite de 36 ou 72 cœurs physiques dans votre système, selon votre nombre de sockets.

Pour cet exercice, il existe un résultat de référence TPC-E pour un système Fujitsu Primergy RX2540 M1 à deux sockets avec un score de débit TPC-E réel de 3 772,08, utilisant deux processeurs Intel Xeon E5-2699 v3 à dix-huit cœurs Haswell-EP et 512 Go de RAM. Le processeur Xeon E5-2699 v3 a une vitesse d'horloge de base de 2,3 GHz, avec une vitesse d'horloge Turbo de 3,6 GHz. Il dispose d'un cache L3 partagé de 45 Mo et d'une vitesse Intel QPI de 9,6 GT/s. Pour ce système, nous diviserions le score réel de 3 772,08 par 36 cœurs physiques, pour arriver à un "score par cœur" de 104,78.

Ce nouveau système à deux sockets aurait presque doublé la capacité globale du processeur du système hérité, avec environ 1,57 fois les performances à un seul thread. Du point de vue de la capacité du processeur et des performances à un seul thread, je serais tout à fait convaincu que ce nouveau système à deux sockets serait un bon remplacement pour le système hérité. Ce nouveau système aurait également des emplacements d'extension PCIe 3.0, il aura donc une capacité d'E/S totale supérieure à celle de l'ancien système. Malheureusement, il possède 36 cœurs physiques qui nécessiteront des licences SQL Server 2014 Enterprise Edition, ce qui sera plutôt coûteux.

Un meilleur choix de processeur pourrait être l'Intel Xeon E5-2667 v3, qui a huit cœurs physiques, avec une vitesse d'horloge de base de 3,2 GHz, une vitesse d'horloge Turbo de 3,6 GHz, un cache L3 partagé de 20 Mo et un processeur Intel de 9,6 GT/s. Vitesse QPI. En utilisant une arithmétique simple, nous pouvons ajuster les différences entre le Xeon E5-2699 v3 et le Xeon E5-2667 v3, (puisqu'ils sont tous deux de la même génération et de la même famille de processeurs).

Tout d'abord, j'ajuste la différence dans le nombre de cœurs physiques. Si vous divisez 8 par 18, le résultat est 0,44, donc vous multipliez 3 772,08 fois 0,44, nous obtenons un résultat de 1 676,48. Ensuite, nous devons ajuster la différence de vitesse d'horloge de base entre ces deux processeurs. Le E5-2667 v3 a une vitesse d'horloge de base supérieure de 39 % à celle du processeur E5-2699 v3. Nous multiplierions donc 1 676,48 fois 1,39 pour obtenir une estimation finale. Score TPC-E de 2330,31. Si nous divisons ce score estimé par 16 cœurs physiques, nous obtenons un résultat "score par cœur" de 145,64.

Ainsi, selon ce calcul, nous aurions toujours plus de capacité globale du processeur que le système hérité, et de bien meilleures performances du processeur à un seul thread en utilisant le nombre de cœurs inférieur, le processeur Xeon E5-2667 v3 "à fréquence optimisée" dans le nouveau processeur à deux sockets. système. Le bonus final de ce choix de processeur est des coûts de licence SQL Server 2014 beaucoup plus bas, puisque nous n'aurions besoin que de 16 licences principales au lieu de 36 licences principales, ce qui représente une économie d'environ 136 000,00 $.

J'espère que la manière dont vous pouvez effectuer une analyse simple pour vous aider à décider du processeur exact que vous devez choisir pour un nouveau serveur de base de données est un peu plus claire, compte tenu de votre charge de travail et de vos contraintes budgétaires. Cette analyse est un peu plus compliquée lorsqu'il s'agit de comparer des processeurs de générations et de familles différentes, mais les mêmes principes de base peuvent être utilisés. J'approfondirai ce sujet dans un prochain article.