L'estimation des IOPS exigences d'une production de système de SQL Server
Nous travaillons sur une application qui va servir à des milliers d'utilisateurs quotidiens (90% d'entre eux sera actif pendant les heures de travail, en utilisant le système en permanence pendant leur journée de travail). Le but principal de ce système est d'interroger plusieurs bases de données et de combiner les informations provenant de bases de données en un seul réponse à l'utilisateur. En fonction de la saisie de l'utilisateur, notre charge de la requête pourrait être autour de 500 requêtes par seconde pour un système avec plus de 1000 utilisateurs. 80% de ces requêtes sont des requêtes de lecture.
Maintenant, j'ai fait un peu de profilage à l'aide du générateur de profils SQL Server outil et je reçois en moyenne d'environ 300 lectures logiques pour les requêtes de lecture (je n'ai pas donné la peine de l'écrire des requêtes encore). Ce qui reviendrait à 150k logique de lectures par seconde pour 1k utilisateurs. Système de production complet est devrait avoir ~10k utilisateurs.
Comment puis-je évaluer le niveau de lecture exigence sur le stockage pour les bases de données? Je suis assez sûr que physique réelle lectures montant pour beaucoup moins que cela, mais comment puis-je estimer que? Bien sûr, je ne peux pas faire une exécution réelle dans l'environnement de production que l'environnement de production n'est pas encore là, et je dois dire que le matériel gars combien IOPS nous allons en avoir besoin pour le système de sorte qu'ils sachent ce qu'ils doivent acheter.
J'ai essayé le HP de dimensionnement de l'outil proposé dans les réponses précédentes, mais il ne suggère des produits HP, sans réel des estimations de performances. Toute réflexion est apprécié.
EDIT: Principal en lecture seule base de données (où la plupart des requêtes ira) est un couple de concerts (de l'ordre de grandeur 4gigs) sur le disque. Ce sera probablement affecter de manière significative la logique vs lectures physiques. Aucune information comment obtenir ce ratio?
juste modifié la principale question avec cette info
OriginalL'auteur Ivan Klaric | 2012-01-02
Vous devez vous connecter pour publier un commentaire.
Disk I/O de la demande varie considérablement en fonction de nombreux facteurs, y compris:
Pour ces raisons, la meilleure façon d'estimer la production de disque de charge est généralement par la construction d'un petit prototype et de l'analyse comparative. Utiliser une copie des données de production si vous le pouvez; sinon, utilisez un outil de génération pour construire une de la même taille DB.
Avec les données de l'échantillon en place, construire un simple test app qui produit un mélange de ces types de requêtes que vous êtes enceinte. L'échelle de la taille de la mémoire si vous en avez besoin.
Mesurer les résultats avec les compteurs de performance Windows. La plupart des statistiques utiles sont pour le Disque Physique: le temps par transfert, transferts par seconde, profondeur de file d'attente, etc.
Vous pouvez ensuite appliquer certaines heuristiques (aussi connu comme "l'expérience") de ces résultats et de les extrapoler à une première estimation de la production d'e/S.
Si vous ne pouvez absolument pas la construction d'un prototype, il est alors possible d'avancer quelques hypothèses basées sur des mesures initiales, mais il faut encore travailler. Pour commencer, tourner sur les statistiques:
Avant d'exécuter une requête de test, effacer le cache RAM:
Ensuite, l'exécution de votre requête, et de regarder physiques lit + lectures anticipées pour voir le disque physique I/O de la demande. Répétez dans un mélange sans effacer la mémoire cache d'abord pour avoir une idée de combien la mise en cache de l'aide.
Cela dit, je déconseille l'utilisation de IOPS toute seule comme une cible. Je me rends compte que SAN fournisseurs et les gestionnaires semblent amour IOPS, mais ils sont très trompeuses mesure de la sous-système de disque de performance. Par exemple, il peut être de 40:1 différence dans livrable IOPS lorsque vous passez d'e/S séquentielles aléatoire.
OriginalL'auteur RickNZ
Vous avez certainement ne peut pas déduire des estimations à partir de lectures logiques. Ce compteur n'est vraiment pas utile, car il est souvent difficile de déterminer dans quelle mesure il est physique et aussi le CPU coût de chacun de ces accès est inconnue. Je ne regarde pas ce nombre à tous les.
Vous avez besoin de recueillir virtuel statistiques du fichier qui va vous montrer les e /s physiques. Par exemple: http://sqlserverio.com/2011/02/08/gather-virtual-file-statistics-using-t-sql-tsql2sday-15/
Google pour "virtuel statistiques du fichier de sql server".
Veuillez noter que vous ne pouvez extrapoler IOs à partir du nombre d'utilisateurs si l'on suppose que le taux d'accès au cache de la mémoire tampon de la piscine restera le même. L'estimation de ce qui est beaucoup plus difficile. Fondamentalement, vous devez estimer le travail à un ensemble de pages, vous aurez à pleine charge.
Si vous pouvez vous assurer que votre pool de mémoire tampon peut toujours prendre tous les raccourcis de données, vous pouvez en principe vivre sans lit. Vous n'avez alors qu'à l'échelle de l'écrit (par exemple avec un disque SSD).
OriginalL'auteur usr