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

Sélection et configuration du matériel pour SQL Server 2016 Standard Edition

Depuis la sortie de SQL Server 2016 Service Pack 1 le 16 novembre 2016, avec de nombreuses fonctionnalités très utiles liées à la programmabilité qui n'étaient auparavant disponibles que dans Enterprise Edition, il est devenu beaucoup plus faisable pour de nombreuses organisations de choisir délibérément d'utiliser SQL Server 2016. Édition Standard qu'elle ne l'était par le passé.

Si vous envisagez de le faire, vous devez être conscient de certains problèmes et pièges courants que vous pouvez rencontrer lorsque vous installez et utilisez SQL Server 2016 Standard Edition sur un nouveau serveur avec du matériel moderne.

Limites et configuration de la mémoire

Le premier problème concerne les limites de licence par instance pour SQL Server 2016 Standard Edition. La première limite de licence est la quantité de mémoire que vous pouvez utiliser pour le pool de mémoire tampon pour chaque instance de SQL Server 2016 Standard Edition, qui n'est que de 128 Go, comme c'était le cas dans SQL Server 2014 Standard Edition. Personnellement, je pense que cette limite est artificiellement basse compte tenu de la densité de mémoire des serveurs modernes à deux sockets, mais c'est une limite avec laquelle nous devons composer.

Les serveurs actuels à deux sockets qui utilisent les processeurs de la famille de produits Intel Xeon E5-2600 v4 peuvent utiliser jusqu'à 12 modules DIMM par processeur, tandis que les modules DIMM DDR4 ECC de 32 Go offrent la capacité la plus élevée et sont également abordables par Go. Chaque serveur avec cette famille de processeurs dispose de 4 canaux de mémoire par processeur, chaque canal prenant en charge jusqu'à 3 modules DIMM. Un serveur à deux sockets entièrement rempli avec vingt-quatre modules DIMM de 32 Go disposerait de 768 Go de RAM, ce qui est bien plus qu'une seule instance de SQL Server 2016 Standard Edition est autorisée à utiliser.

Étant donné que SQL Server 2016 Standard Edition a une limite de mémoire par instance si faible, vous devez choisir délibérément une configuration de mémoire appropriée qui vous permettra d'utiliser toute la mémoire de la limite de licence tout en obtenant les meilleures performances de mémoire possibles. Remplir un seul module DIMM par canal de mémoire vous donnera les meilleures performances de mémoire absolues prises en charge par votre ou vos processeurs.

Les principaux fournisseurs de serveurs, tels que Dell, offrent des conseils détaillés sur les configurations de mémoire possibles pour leurs serveurs, en fonction du nombre et du type spécifique de processeur sélectionné. Pour SQL Server 2016 Standard Edition dans un serveur à deux sockets avec deux processeurs de la famille Intel Xeon E5-2600 v4, le choix de huit modules DIMM DDR4 de 32 Go vous donnerait 256 Go de RAM, fonctionnant à la vitesse maximale prise en charge de 2 400 MT/s.

Cela vous permettrait de définir la mémoire maximale du serveur (pour le pool de mémoire tampon) sur 131 072 Mo (128 Go), tout en conservant suffisamment de mémoire pour le système d'exploitation et pour une utilisation éventuelle par les index columnstore et l'OLTP en mémoire. Vous auriez également seize emplacements DIMM vides qui pourraient être utilisés pour une future extension de RAM (dont vous pourriez profiter si vous effectuiez une mise à niveau ultérieure vers Enterprise Edition). Une autre utilisation de certains de ces emplacements DIMM vides serait la « mise en cache de la fin du journal » sur les NVDIMM (qui est prise en charge dans SQL Server 2016 Standard Edition avec SP1).

Limites de licence de processeur

SQL Server 2016 Standard Edition est également limité au moindre de quatre sockets ou 24 cœurs de processeur physique. Avec les familles de processeurs actuelles et à venir d'Intel et d'AMD qui auront jusqu'à 32 cœurs physiques, il est très facile de dépasser par inadvertance la limite de cœur de processeur par instance, avec un certain nombre de conséquences désastreuses sur les performances et les coûts de licence.

Le premier effet négatif de cette opération est la manière dont SQL Server 2016 Standard Edition allouera vos cœurs physiques de limite de licence disponibles sur vos nœuds NUMA. Par exemple, si vous aviez un nouveau serveur à deux sockets doté de deux processeurs Intel Xeon E5-2697A v4 à 16 cœurs, par défaut, SQL Server 2016 Standard Edition utiliserait seize cœurs physiques sur le nœud NUMA 0 et seulement huit cœurs sur NUMA. nœud 1, qui est une configuration déséquilibrée qui ne fonctionnera pas aussi bien qu'elle le pourrait. Vous pouvez résoudre ce problème avec une commande ALTER SERVER CONFIGURATION comme je le décris ici.

Pour ajouter l'insulte à l'injure dans cette situation, Microsoft s'attendrait également à ce que vous achetiez des licences de base pour les 32 cœurs physiques de la machine, même si vous n'êtes autorisé à utiliser que 24 cœurs physiques par instance. Cela représenterait un coût de licence supplémentaire d'environ 15 000 $, pour les licences principales que vous ne pourriez pas utiliser, à moins que vous ne décidiez d'exécuter plusieurs instances sur la même machine hôte. Le coût de licence supplémentaire paierait pour un serveur à deux sockets typique, selon la façon dont il a été configuré.

Un autre écueil courant que vous devez éviter avec l'édition Standard est la création d'une machine virtuelle dotée de plus de quatre sockets. Si vous faites cela, SQL Server Standard Edition n'utilisera que quatre sockets en raison de la limite de licence de socket.

Sélection du processeur

Actuellement, la famille de processeurs Intel Xeon la plus moderne pour les serveurs à deux sockets est la famille de produits Intel Xeon E5-2600 v4 14 nm (Broadwell-EP) qui a été lancée au premier trimestre de 2016. Intel est sur le point de lancer la prochaine génération d'Intel 14 nm Xeon E5-2600 v5 (Skylake-EP), qui est déjà disponible sur Google Cloud Platform. Je suppose que ces nouveaux processeurs (qui nécessiteront de nouveaux modèles de serveurs) seront disponibles publiquement au deuxième trimestre de 2017.

Compte tenu de cette limite de licence de 24 cœurs physiques, il est extrêmement important que vous ne sélectionnez pas un processeur qui a plus de 12 cœurs physiques (si vous prévoyez de remplir les deux sockets d'un serveur à deux sockets). Cela limite quelque peu votre sélection de SKU de processeur, mais il reste encore quatre excellents choix disponibles, comme indiqué dans le tableau 1.

Modèle Cœurs Est. Score du système TPC-E Score/Core physique Coût de la licence
Xeon E5-2687W v4 24 3 673,00 153.04 44 592,00 $
Xeon E5-2667 v4 16 2 611,91 163.24 29 728,00 $
Xeon E5-2643 v4 12 2 081,36 173.44 22 296,00 $
Xeon E5-2637 v4 8 1 428,39 178.54 14 864,00 $

Tableau 1 : Métriques comparatives du processeur du système à deux sockets

Le tableau 1 indique le nombre total de cœurs physiques, le score TPC-E estimé, le score TPC-E estimé/cœur physique et le coût total de la licence SQL Server 2016 Standard Edition pour un système à deux sockets, équipé de deux des processeurs sélectionnés. Vous remarquerez peut-être que j'ai un processeur à douze cœurs, un processeur à huit cœurs, un processeur à six cœurs et un processeur à quatre cœurs, mais il n'y a pas de processeur à dix cœurs dans le tableau 1. C'est par conception, puisque le trois modèles de processeurs à dix cœurs disponibles sont tous de très mauvais choix pour SQL Server, en raison de leurs très faibles vitesses d'horloge de base.

Le score TPC-E estimé pour l'ensemble du système est une mesure de la capacité totale du processeur du système, tandis que le score/cœur est une mesure des performances du processeur monothread de ce processeur spécifique.

Résumé

Si vous souhaitez obtenir les meilleures performances possibles au coût le plus bas du matériel et des licences SQL Server pour une instance SQL Server 2016 Standard Edition, vous devez choisir une configuration de mémoire qui n'utilise qu'un seul DIMM par canal de mémoire (ce qui signifie huit DIMM au total dans un système à deux sockets avec deux processeurs de la famille Intel Xeon E5-2600 v4).

Vous devez également choisir délibérément l'un des quatre processeurs répertoriés dans le tableau 1. Tout autre choix de processeur est une erreur potentiellement coûteuse de ce point de vue.

Enfin, si vous envisagez d'utiliser SQL Server 2016 Standard Edition, vous devez rechercher et tester si Buffer Pool Extension (BPE) peut améliorer les performances de votre charge de travail. En fonction de votre charge de travail, la mise en cache "queue du journal" sur un NVDIMM peut également être très bénéfique pour les performances de votre journal des transactions.