4 votes

MS SQL Layout pour de meilleures performances

Nous avons acheté un nouveau serveur qui servira de backend à MS SQL. Je suis curieux de savoir quelle serait la meilleure configuration pour ce serveur.

Le serveur est un Dell R710 qui possède 6 disques durs : 2x 74GB 15k et 4x 146GB 15k.

Il est actuellement installé dans une configuration RAID 1/Raid10.

Ma question est de savoir où (quel tableau) les éléments suivants doivent être placés ?

TEMPDB (nombre, taille et croissance) Bases de données système (maître, modèle, etc.) MDF d'application LDF d'application Fichier de pages du système

Le système d'exploitation est déjà installé sur le RAID1.

0voto

Ryan Rinaldi Points 1683

Quel est le niveau de performance dont vous avez besoin ? Il est difficile de répondre à cette question en se contentant de dire "voici un disque". De plus, les performances SQL sont bien meilleures si vous pouvez mettre toutes vos données en cache, alors assurez-vous d'avoir beaucoup de RAM dans ce truc.

J'opterais pour le système d'exploitation et la pagefile sur vos volumes de 2 x 74 Go. Si vous vous retrouvez dans une situation où vous avez un trafic de logs important, vous pouvez diviser votre raid 10 en une paire de raid 1 et y placer vos logs.

Il est évident qu'il y a beaucoup de guerres de religion sur la "meilleure" disposition, mais vous n'avez pas vraiment assez de disques à déplacer. Il est inutile de partitionner vos disques de données, car ce qui vous importe vraiment, c'est le nombre de broches, et vous êtes limité par ce que vous pouvez loger dans le serveur.

Vous feriez mieux de vous procurer un PowerVault ou autre, et de recycler les disques de 146 Go dans celui-ci (avec autant d'autres disques que possible) et de les diviser en volumes données/logs/système+tempdb.

0voto

Dr Zimmerman Points 136

Je commencerais par collecter des statistiques IO de l'ancien système. Par exemple, commencez par les rapports Performance Dahsboard : http://www.microsoft.com/downloads/details.aspx?FamilyId=1d3a4a0d-7e0c-4730-8204-e419218c1efc&displaylang=en Vous obtiendrez ainsi les statistiques IO pour vos bases de données et pourrez prendre une décision en connaissance de cause, plutôt que de vous contenter d'un conseil générique de type "taille unique". Bien entendu, les caractéristiques IO par base de données de l'ancien serveur peuvent être différentes de celles du nouveau, en particulier si la quantité de RAM disponible est différente. C'est toujours mieux qu'une simple supposition.

L'idéal est de séparer les fichiers à forte charge d'E/S dans leurs propres dispositifs, et de ne pas mélanger les E/S aléatoires de l'accès MDF avec les écritures linéaires de l'accès LDF. Dans votre cas, il n'y a pas vraiment beaucoup de combinaisons, vous n'avez que 2 emplacements (les 2 disques dans RAID1 et les 4 dans RAID10). Vous pouvez additionner les E/S par base de données telles qu'elles ont été collectées sur l'ancien serveur, puis diviser les emplacements de fichiers de manière à répartir les E/S entre les deux destinations selon un ratio de 1/5 sur le RAID1 et de 4/5 sur le RAID10 (pour tenir compte de l'E/S du système d'exploitation et des fichiers de pages sur le RAID1). J'espère que vous n'avez pas d'application à forte intensité d'écriture (charge d'écriture séquentielle LDF élevée)...

Il est généralement recommandé de disposer d'un NDF par ordonnanceur (le cœur du CPU n'étant pas masqué), tous ayant la même taille, le raisonnement étant expliqué ici : http://blogs.msdn.com/sqlserverstorageengine/archive/2009/01/04/managing-tempdb-in-sql-server-tempdb-configuration.aspx . Cela permet de résoudre les conflits d'allocation de pages qui peuvent constituer un problème sérieux dans le cadre de l'application de la législation sur les droits d'auteur. charge élevée sur SQL 2K, moins sous 2k5, et encore moins sur 2k8. Mais étant donné que cela ne coûte pratiquement rien de le configurer ainsi, vous devriez quand même le faire.

0voto

John Rennie Points 7728

Ce n'est pas vraiment un système de disque très rapide. Je remercie splattne pour sa réponse géniale, mais ce n'est pas vraiment un système de disque très rapide, donc je ne suis pas sûr que cela vaille la peine de se donner autant de mal.

Le RAID1 à deux disques n'apporte que peu ou pas d'amélioration des performances par rapport à un seul disque non divisé. Le RAID10 à quatre disques vous donne à peu près la vitesse d'un RAID0 à deux disques, ce qui est rapide mais pas stupéfiant. Ce n'est pas un serveur lent, mais ce n'est pas un candidat évident pour faire tourner une base de données SQL très exigeante.

S'il s'agissait de mon serveur, je trouverais deux disques supplémentaires de 146 Go et j'en ferais un RAID5 à six disques. OK, je vais me faire engueuler pour avoir mis tempdb sur le(s) même(s) disque(s) que les fichiers de données, mais les contrôleurs Perc sont très bons en RAID5 et un RAID5 à six disques sera tellement rapide que vous obtiendrez (probablement) de meilleures performances qu'en ayant tempdb sur un RAID1 et seulement 4 disques dans votre RAID5. Je dis "probablement" parce que, comme pour tout, cela dépend de la façon dont vous le chargez.

JR

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X