web-dev-qa-db-fra.com

SQL Server sur SAN, même LUN: un lecteur logique vs multiple

Tout d'abord, laissez-moi commencer par dire que j'ai remarqué qu'il y a plusieurs questions similaires à cela, mais aucun d'entre eux n'est exactement ce que je veux demander, et non l'un d'entre eux n'a une réponse définitive.

Deuxièmement, laissez-moi vous confirmer que je comprends, qu'il est recommandé d'utiliser différentes lunes/broches pour les journaux/données même sur l'environnement SAN/virtualisé.

Maintenant la question:

S'il n'y a qu'un seul seul LUN attribué à une machine virtuelle SQL Server, existe-t-il un Performances (non gestion, sécurité ou toute autre) différence entre les configurations suivantes:

  1. One Fichier de disque virtuel (VHD, VMDK, quoi que ce soit) avec One Contrôleur virtuel avec ne Partition logique dans le système d'exploitation virtuel, et TEMPDB/DATA/LOG dans cette partition
  2. n fichier de disque virtuel avec One contrôleur virtuel mais multiple Partitions logiques/lettres d'entraînement pour Tempdb/Data/Log
  3. Plusieurs Fichiers de disque virtuel Un séparé Contrôleur virtuel avec séparé Partitions pour Tempdb/Data/Log

Jusqu'à présent, j'ai entendu les réponses suivantes:

  1. Il y a non ou négligeable différence de performance, comme à la fin, sa même broche avec la même capacité IO
  2. Là-bas est ​​une différence de performance dans quelques scénarios car les contrôleurs virtuels ont des files d'attente distinctes (virtuelles) IO et planification dans le OS invité Englisons

Si important, supposons que la charge de travail est un très grand nombre de threads avec de très petites demandes (si petite file d'attente).

J'aimerais que cela soit installé une fois pour toutes, alors j'aimerais demander de rester sur le sujet de Performance sur une LUN et de vous abstenir d'optimiser la mise en page.

6
mrQQ

Dans votre question, vous dites "une LUN attribuée à un serveur SQL Server VM" - ce que vous voulez est une LUN attribuée à la machine hôte VMware pouvant avoir plusieurs VMDKS pour le serveur SQL stocké dessus. Cela permet au VM= d'utiliser un nombre beaucoup plus important de threads pour accéder au disque.

Afin d'obtenir la meilleure profondeur de la file d'attente de VMware, vous devez utiliser autant de contrôleurs virtuels distincts, et conduit le plus possible possible. Assurez-vous d'utiliser le contrôleur para-virtualisé, le cas échéant. Reportez-vous à ce blog de VMware.

J'aurais mis tempdb sur 2 contrôleurs (avec 4 fichiers, répartis sur les deux contrôleurs/Luns).

Je mettais des données sur un contrôleur et TEMPDB sur un contrôleur.

Les contrôleurs virtuels ont leurs propres files d'attente (tout comme le matériel); En règle générale au plus 32. Pretty clairement, 32 n'est pas beaucoup, alors avoir plus de contrôleurs augmente effectivement la profondeur de la file d'attente effective.

Clairement, si vous allez après la performance, il existe également de nombreux autres paramètres, tels que la CPU et les réservations de mémoire.

L'avertissement standard s'applique ici; Faites ce que vous avez testé comme étant la meilleure solution pour votre système. Comme nous n'avons aucune idée de vos charges, des exigences d'E/S E/S, etc., etc., il est assez difficile pour nous de vous donner une règle dure et rapide à suivre pour chaque Installation.


VMware Whiteaper sur la poussée des performances d'E/S est ici (Avertissement, PDF).

5
Max Vernon