J'ai un serveur de base de données assez occupé exécutant SQL Server 2008 R2 qui a la configuration suivante:
- SATA RAID 1 (2 disques) - OS / Programmes
- SAS RAID 10 (4 disques) - Fichiers de base de données SQL (données et journaux)
- SAS RAID 1 (2 disques) - TempDB (données et journaux)
En supposant que je ne peux pas ajouter de lecteurs supplémentaires à ce serveur, ai-je fait le meilleur usage de la configuration dont je dispose? Ou devrais-je envisager un autre schéma ici où les journaux sont isolés des fichiers de données, par exemple?
Mise à jour:
Pour ceux qui ont demandé plus de détails sur le matériel:
- Les disques SATA (utilisés pour la partition OS / Program) sont: WD 7200 RPM 3 Gb / s 3,5 pouces SATA
- Les disques SAS utilisés dans les autres baies sont: Seagate 15K RPM 6 Gb / s 3,5 pouces SAS
- Le contrôleur RAID utilisé est: un port LSI 9260-8i SAS / SATA 6 Gb 8
Mise à jour 2:
Sur la base des commentaires que j'ai reçus, il semble que j'ai les options viables parmi lesquelles choisir - je vais attribuer la prime à quelqu'un qui peut me dire ce qui est probablement le meilleur dans l'environnement que j'ai décrit:
- Laisse tout tel quel - je ne ferai probablement pas beaucoup mieux
- Déplacer mes 2 disques SAS RAID 1 dans ma matrice RAID 10 existante pour qu'elle soit composée de 6 disques au total
- Déplacer mes fichiers journaux sur le SAS RAID 1 et / ou réinstaller TempDB (données ou journaux) sur le RAID 10
sql-server
hardware
DanP
la source
la source
Réponses:
Des variantes de cette question apparaissent semi-régulièrement:
Il y a aussi des combats occasionnels de petits pains sur la "meilleure pratique" de séparation des données / journaux.
Sans une analyse plus détaillée de ce que fait ce serveur, le même conseil s'applique que celui donné précédemment.
Il y a rarement un point dans une scission avec si peu de broches disponibles. Une baie unique avec une plus grande capacité d'E / S absorbera généralement les blocs et les bosses de votre charge de travail mieux que 2 baies plus petites.
Une variante qui mérite d'être testée est de mettre tempdb sur le lecteur du système d'exploitation. Ne le faites que si vous disposez d'une charge de travail représentative que vous pouvez relire à plusieurs reprises, afin de garantir une comparaison équitable de la configuration. Si vous optez pour cet arrangement en production, assurez-vous que la croissance de tempdb est limitée afin de ne pas consommer par inadvertance tout l'espace libre sur le lecteur du système d'exploitation.
Étant donné que vos lecteurs OS sont des sous-verres à 7200 tr / min, je serais surpris si la configuration de tempdb sur le lecteur OS offrait un quelconque avantage.
la source
Tout dépend de votre charge de travail, mais avec seulement 6 disques, cela limite vos options. Si votre charge de travail ne dépend pas fortement de tempdb pour des choses telles que les tris, les tables de hachage et l'isolement de cliché, alors vous feriez mieux d'utiliser les 6 disques SAS ensemble en RAID 10. Cependant, si vous connaissez ou avez les mesures pour prouver que tempdb est fortement utilisé, alors vous devriez le garder séparé comme vous l'avez fait.
la source
Cela dépend beaucoup de ce que vous entendez par «très occupé»: différents modèles de charge de travail (écriture lourde ou non, opérations en masse courantes ou non, niveau d'accès simultané, pour ne nommer que trois des nombreuses variables) peuvent avoir un effet drastique sur la performance de tout arrangement de broche donné.
Pour une situation d'écriture lourde, la séparation des journaux des données peut faire une différence significative car chaque écriture implique la mise à jour du journal et des fichiers de données, ce qui implique une bonne quantité de retournement de tête supplémentaire si les deux ensembles de fichiers sont sur le même ensemble de broches .
Sans autre référence à votre charge de travail (et aux spécifications de ces disques et de tout contrôleur qui se trouve entre eux et la machine), je serais enclin à opter pour trois volumes: un pour les programmes OS + et tempdb (données), un pour la base de données principale données et le troisième pour les journaux (à la fois tempdb et DB principaux).
Bien sûr, si vos charges de travail sont toutes très légères sur les opérations d'écriture, vous ne devriez pas passer trop de temps à vous soucier de garder les données et les journaux séparés, car cela fera peu de différence de performances et leur consacrer un volume entier serait assez inutile. espace.
la source
La réponse réelle dépend de vos besoins, mais en général, "mettre des données et se connecter sur des tableaux différents" est plus important que "mettre tempdb sur son propre tableau".
Compte tenu du nombre de disques dont vous disposez, mon point de départ serait:
Ce que vous devez faire est d'utiliser SQLIO pour tester les performances de différentes configurations de disques.
la source
Selon l'utilisation que vous faites de la base de données (OLTP vs entreposage), votre configuration ressemble à une bonne configuration générale. Si vous aviez plus de disques, vous auriez plus d'options.
Vous pourriez obtenir de meilleures performances si vous commutiez le disque de votre TempDB sur RAID 0 (stripe). Cela augmente le risque d'échec, mais comme TempDB ne met en mémoire tampon que les données, vous ne pouvez pas subir de perte de données. La plupart des gens considèrent donc que c'est un compromis raisonnable. Gardez simplement un disque de rechange (ou un disque de secours).
Une chose que vous n'avez pas mentionnée, mais que vous pourriez essayer (si vous ne l'avez pas déjà fait): Microsoft recommande de diviser votre TempDB en plusieurs fichiers (un par CPU). Bien sûr, il est préférable qu'ils soient sur des disques séparés, mais simplement avoir des fichiers séparés aide. http://msdn.microsoft.com/en-us/library/ms175527(v=SQL.105).aspx
la source