Une question qui revient assez fréquemment est de savoir comment déterminer la quantité de RAM physique dans un serveur de base de données exécutant SQL Server 2012. L'une des premières informations dont vous avez besoin pour déterminer cela est la version et l'édition de SQL Server que vous utiliserez. sur votre nouveau serveur.
Différentes versions et éditions de SQL Server 64 bits ont des limites de licence différentes pour la quantité de RAM physique qu'elles peuvent utiliser à différentes fins, comme indiqué dans le tableau 1.
Version | Édition | Limite moteur | Limite SSAS |
---|---|---|---|
SQL Server 2008 | Norme | Limite du système d'exploitation | Limite du système d'exploitation |
Entreprise | Limite du système d'exploitation | Limite du système d'exploitation | |
SQL Server 2008 R2 | Norme | 64 Go | 64 Go |
Entreprise | 2 To | 2 To | |
Centre de données | Limite du système d'exploitation | Limite du système d'exploitation | |
SQL Server 2012 | Norme | 64 Go | 64 Go |
Informatique décisionnelle | 64 Go | Limite du système d'exploitation | |
Entreprise | Limite du système d'exploitation | Limite du système d'exploitation |
Tableau 1 :Limites de RAM SQL Server par version et édition
Comme vous pouvez le voir dans le tableau 1, SQL Server 2008 peut utiliser jusqu'à la limite du système d'exploitation pour la RAM physique pour les éditions Standard et Enterprise. Lorsque Microsoft a publié SQL Server 2008 R2, ils ont eu la mauvaise idée (à mon avis) d'introduire des limites de RAM physique inférieures pour les éditions Standard et Enterprise. Ils ont également introduit une nouvelle édition Data Center de SQL Server 2008 R2, qui avait l'ancienne limite de système d'exploitation familière comme limite de licence pour la RAM physique.
Limites de mémoire SQL Server 2012
Lorsque Microsoft a publié SQL Server 2012, ils se sont sagement débarrassés du SKU Data Center Edition, mais ils ont conservé la même limite artificiellement basse de 64 Go de RAM pour l'édition Standard. J'ai longuement expliqué pourquoi c'est une mauvaise idée, je ne récapitulerai donc pas ces arguments ici. Qu'il suffise de dire qu'il est un peu ridicule d'être limité à l'utilisation de moins de 800,00 $ de RAM DDR3 ECC (64 Go fois 12 $/Go) dans un nouveau serveur à deux sockets qui peut avoir coûté environ 10 000 $ à 15 000 $ pour le serveur lui-même , plus environ 29 000 $ pour seize licences SQL Server 2012 Standard Edition Core, sans parler de vos coûts de stockage.
Jusqu'à présent, rien n'indique que Microsoft ait l'intention de modifier cette limite de RAM pour SQL Server 2014, nous devrons donc peut-être continuer à nous en occuper. Un petit aspect positif de cette limite de RAM est qu'elle est par instance SQL Server, et non par serveur. Cela signifie que vous pouvez, avec un peu de réflexion et de planification, décider d'installer deux ou trois instances SQL Server 2012 Standard Edition sur la même machine physique pour tirer parti de toutes les ressources de mémoire, de processeur et de stockage de la machine, si vous le souhaitez. pour gérer l'utilisation supplémentaire des ressources et la surcharge de gestion des instances nommées. Cela pourrait vous faire économiser beaucoup d'argent en matériel et en coûts de licence SQL Server 2012 par rapport à deux ou trois serveurs distincts.
Si vous décidez de vous en tenir à une seule instance par défaut de SQL Server 2012 Standard Edition (ce que je préfère si je suis limité à Standard Edition), devriez-vous simplement obtenir 64 Go de RAM pour le serveur de base de données ? Je pense que la réponse est un non catégorique !
Exemple de configuration de la mémoire de SQL Server 2012 Standard Edition
Depuis la classe serveur, la RAM DDR3 ECC est si abordable; Je pense qu'une quantité minimale raisonnable de RAM pour un nouveau serveur à deux sockets est plus proche de 96 Go de RAM. Cela vous permettra de définir le paramètre de mémoire maximale du serveur au niveau de l'instance sur 65 536 Mo, soit exactement 64 Go de RAM, tout en laissant beaucoup de RAM excédentaire pour le système d'exploitation et toute autre application susceptible de s'exécuter sur votre serveur de base de données.
Les principaux fournisseurs de serveurs proposent une documentation et des outils de configuration de mémoire en ligne qui vous permettent de vous assurer que vous obtenez la meilleure configuration de mémoire possible pour une quantité de mémoire physique souhaitée. Vous pouvez également utiliser un outil comme CPU-Z pour vérifier la vitesse de la mémoire de votre système afin de vous assurer qu'il fonctionne à la vitesse que vous attendez.
Par exemple, Dell a un outil de configuration en ligne ici. Cet outil vous permet de choisir le modèle de serveur Dell que vous souhaitez, y compris la famille de processeurs que vous utiliserez (lorsque vous avez le choix) et le nombre de processeurs physiques qui seront réellement dans le serveur. Ensuite, vous entrez la quantité de RAM physique que vous souhaitez sur le serveur et choisissez les options de fiabilité de la mémoire souhaitées (telles que la mise en miroir de la mémoire, la réserve de rang, etc.), puis l'outil proposera trois configurations de mémoire possibles différentes :configuration nominale, Performances maximales et configuration équilibrée. Ces configurations indiquent le type, le nombre et la taille des modules de mémoire que vous devez utiliser, ainsi que les canaux et les emplacements de mémoire que vous devez remplir pour satisfaire l'option de configuration choisie.
Si vous choisissez un serveur Dell PowerEdge R720 à deux sockets, avec deux des nouveaux processeurs Intel Xeon E5-2600 v2 (Ivy Bridge-EP) 22 nm et que vous sélectionnez 96 Go de RAM sans aucune autre option de fiabilité de la mémoire, vous obtiendrez trois mémoires suggérées. options de configuration. L'option Performances maximales suggère douze modules RDIMM 1866 MHz 1R x4 de 8 Go, avec l'emplacement 0 sur les canaux 1-4 remplis et l'emplacement 1 sur les canaux 1-2 remplis pour chaque processeur. Cela vous donne une vitesse de mémoire système de 1866 MHz, qui est le maximum pris en charge par la nouvelle série de processeurs Intel Xeon E5-2600 v2.
Soit dit en passant, si vous allez utiliser SQL Server 2012 Standard Edition, le processeur exact que vous voulez dans un Dell R720 est le Intel Xeon E5-2667 v2, qui a huit cœurs physiques avec une vitesse d'horloge de base de 3,3 GHz. Un modèle avec un nombre de cœurs plus élevé entraînerait la limite de licence de 16 cœurs physiques pour SQL Server 2012 Standard Edition.
L'option de configuration équilibrée suggère douze modules RDIMM 8 Go 1600 MHz 1R x4, avec le logement 0 sur les canaux 1 à 4 rempli et le logement 1 sur les canaux 1 à 2 rempli pour chaque processeur. Cela vous donne une vitesse de mémoire système de 1600 MHz, qui utilisera légèrement moins d'énergie électrique que l'option Performances maximales.
L'option de configuration nominale suggère vingt-quatre modules RDIMM 4 Go 1333 MHz 1R x8 avec tous les emplacements sur tous les canaux remplis pour chaque processeur. Cela vous donne une vitesse de mémoire système de 1333 MHz, avec tous vos emplacements remplis d'assez petits RDIMM de 4 Go. Il s'agit d'un choix moins qu'optimal qui est conçu pour économiser de l'argent sur les coûts de mémoire en utilisant des modules DIMM de plus petite capacité et de vitesse inférieure. Malheureusement, il y a peu d'économies monétaires réelles ici, au prix de l'abandon d'une quantité décente de performances de mémoire et de l'absence d'emplacements de mémoire vides.
Avec les processeurs Intel Xeon E5-2600 et E5-2600 v2, vous obtiendrez la bande passante mémoire la plus élevée possible si vous ne remplissez qu'un ou deux emplacements par canal mémoire. Le remplissage du troisième emplacement mémoire entraîne une diminution de la vitesse de la mémoire système. La plus grande quantité de mémoire que vous pouvez utiliser à la vitesse maximale de la mémoire système en utilisant des RDIMM économiques de 16 Go est de 256 Go, soit seize RDIMM de 16 Go, remplissant tous les emplacements des canaux 1 et 2. Il n'y a aucun avantage en termes de vitesse de mémoire système à avoir moins de 256 Go de mémoire. RAM dans un serveur à deux sockets avec deux processeurs Xeon E5-2600 ou E5-2600 v2.
Même s'il est préférable d'essayer de trouver une configuration de mémoire qui donne la vitesse de mémoire système la plus élevée possible pour une quantité donnée de RAM, d'après mon expérience (et dans la plupart des tests d'application réels que j'ai vus), la différence de performances dans le monde réel entre différentes vitesses de mémoire système est beaucoup plus petit que ce à quoi vous pourriez vous attendre, assez souvent dans la plage de 5 à 10 % ou moins. Pour l'utilisation de SQL Server Enterprise Edition, je préférerais avoir suffisamment de RAM pour s'adapter à toute ma charge de travail dans le pool de mémoire tampon plutôt que de choisir une quantité inférieure de RAM pour obtenir la vitesse de mémoire la plus élevée possible au prix d'avoir à extraire davantage de données du sous-système de stockage. souvent. Même la RAM « lente » a des ordres de grandeur inférieurs à la latence que tout type de sous-système de stockage, y compris le stockage basé sur la mémoire flash.
Si ma charge de travail ne tenait pas dans 256 Go de RAM, je préférerais ajouter plus de RAM et prendre le coup de vitesse de la mémoire système plutôt que de devoir accéder plus souvent au sous-système de stockage beaucoup plus lent. Donc, pour récapituler, je pense que la mémoire idéale pour SQL Server 2012 Standard Edition pour ce type de serveur est de 96 Go, passant à 256 Go pour SQL Server 2012 Enterprise Edition (sauf si votre charge de travail est supérieure à 256 Go).