Utiliser l’utilitaire SQLIOSim pour simuler l’activité SQL Server sur un sous-système de disque
Cet article explique comment utiliser l’utilitaire SQLIOSim pour effectuer des tests de contrainte sur les sous-systèmes de disque pour simuler l’activité SQL Server.
Version du produit d’origine : SQL Server
Numéro de la base de connaissances d’origine : 231619
Introduction
Cet article décrit l’outil SQLIOSim. Vous pouvez utiliser SQLIOSim pour effectuer des tests de fiabilité et d’intégrité sur les sous-systèmes de disque utilisés par SQL Server. Ces tests SQLIOSim simulent les activités de lecture, d’écriture, de point de contrôle, de sauvegarde, de tri et de lecture anticipée effectuées par Microsoft SQL Server. Pour plus d’informations sur les modèles d’E/S SQL Server, consultez Les principes de base des E/S SQL Server, Chapitre 2. L’utilitaire SQLIOSim effectue cette simulation indépendamment du moteur SQL Server.
L’objectif principal des tests de simulation d’E/S est de garantir la fiabilité du sous-système d’E/S sous-jacent avant que votre serveur SQL Server ne commence à l’utiliser. SQLIOSim n’interagit pas avec SQL Server et ne nécessite même pas l’exécution de SQL Server. En fait, dans la plupart des cas, nous vous recommandons d’utiliser SQLIOSim quand SQL Server n’est pas en cours d’exécution pour éviter la concurrence pour le débit d’E/S entre les deux applications. Veillez à ne pas pointer ou utiliser les fichiers de base de données SQL Server réels dans votre test SQLIOSim, car vous pouvez les remplacer.
Pour maintenir l’intégrité des données appropriée, nous vous recommandons d’effectuer des tests de contrainte de votre sous-système d’E/S avant de déployer SQL Server sur le nouveau matériel. L’utilitaire SQLIOSim simule les modèles de lecture et d’écriture et les techniques d’identification des problèmes de SQL Server. Pour effectuer ces tâches, l’utilitaire SQLIOSim simule l’activité utilisateur et l’activité système d’un système SQL Server.
L’utilitaire SQLIOSim ne garantit pas ou ne garantit pas la sécurité ou l’intégrité des données. L’utilitaire est conçu pour fournir des tests de référence d’un environnement système. L’utilitaire SQLIOSim peut exposer des problèmes potentiels d’intégrité des données.
Pour plus d’informations sur la journalisation et le stockage des données, consultez Description des algorithmes de journalisation et de stockage de données qui étendent la fiabilité des données dans SQL Server.
Si vous devez effectuer des tests d’évaluation des performances et que vous souhaitez déterminer la capacité de débit d’E/S du système de stockage, utilisez l’outil Diskspd à la place.
L’utilitaire SQLIOSim remplace l’utilitaire SQLIOStress, anciennement appelé utilitaire SQL70IOStress.
Emplacement SQLIOSim
Dans le passé, SQLIOSim a été expédié en tant que package de téléchargement distinct. À compter de SQL Server 2008, SQLIOSim est inclus dans l’installation du produit SQL Server. Lorsque vous installez SQL Server, vous trouverez l’outil SQLIOSim dans le dossier \Binn de votre installation de SQL Server. Nous vous recommandons d’utiliser cette version mise à jour de l’outil pour simuler l’activité d’E/S sur le sous-système de disque.
Trois fichiers font partie du package SQLIOSim. Le dossier \Binn contient deux fichiers exécutables, SQLIOSim.com et SQLIOSim.exe. Les deux fichiers exécutables fournissent des fonctionnalités de simulation d’E/S identiques.
- SQLIOSim.com est un outil en ligne de commande. Vous pouvez le configurer pour qu’il s’exécute sans interaction utilisateur. Pour effectuer cette configuration, vous pouvez utiliser des paramètres de ligne de commande, un fichier de configuration ou une combinaison de ces deux méthodes.
- SQLIOSim.exe est une application graphique (GUI) qui n’accepte aucun paramètre de ligne de commande. Toutefois, SQLIOSim.exe charge les données de configuration par défaut à partir de fichiers de configuration.
- Vous pouvez également utiliser des fichiers de configuration pour automatiser la simulation d’E/S avec SQLIOSim. Pour plus d’informations, consultez la section du fichier de configuration SQLIOSim.
Utiliser SQLIOSim sur une machine sans SQL Server
Nous vous recommandons d’utiliser SQLIOSim pour un test étendu sur un ordinateur avant d’installer SQL Server. Utilisez-le pour tester le sous-système d’E/S dans lequel vous prévoyez de placer des données et des fichiers journaux à l’avenir et de garantir la fiabilité du sous-système d’E/S. Pour accomplir cette tâche, envisagez de copier les trois fichiers SQLIOSim à partir d’un ordinateur sur lequel SQL Server est installé et exécutez les tests avant une installation de SQL Server. Copiez SQLIOSim.com, SQLIOSim.exe et éventuellement un ou plusieurs des fichiers de configuration si vous envisagez d’utiliser des paramètres préconfigurés. Exécutez ensuite la simulation de test sur cet ordinateur.
Utilisation de SQLIOSim
Vous n’avez pas besoin du service SQL Server en cours d’exécution pendant l’exécution de SQLIOSim. En fait, nous vous recommandons de ne pas exécuter SQL Server pendant l’exécution de SQLIOSim, car ils peuvent concurrencer les ressources d’E/S.
Avertissement
Ne spécifiez pas les fichiers de base de données SQL Server réels à tester. L’utilitaire SQLIOSim remplacera les données avec des modèles de test aléatoires, et vos données SQL Server réelles seront perdues.
Les exemples suivants illustrent comment exécuter SQLIOSim à l’aide de l’interface utilisateur graphique et de la ligne de commande.
Exemple 1 : Utiliser l’interface graphique utilisateur
Accédez à C :\Program Files\Microsoft SQL Server\MSSQLXX.<InstanceName>\MSSQL\Binn.
Démarrez l’application SQLIOSIM.EXE . Vous pouvez voir la fenêtre Fichiers et configuration , qui contient certains paramètres par défaut. Vous pouvez modifier ces paramètres pour répondre à vos besoins de configuration.
Mettez en surbrillance le premier fichier mdx C :\temp\sqliosim\sqliosim.mdx dans la liste. Ce fichier est l’équivalent d’un fichier de données.
Modifiez les paramètres du fichier en modifiant son emplacement, sa taille, sa taille maximale ou son incrément. Conservez le fichier journal décoché lorsque vous souhaitez simuler un fichier de données. Ensuite, sélectionnez le bouton Appliquer.
L’exemple montre l’emplacement du fichier est remplacé par D :\temp\sqliosim\sqliosim.mdx, sa taille est définie sur 2048 Mo, sa taille maximale est définie sur 4096 Mo et sa taille d’incrément est définie sur 64 Mo.
Modifiez le deuxième fichier avec le suffixe ldx . Ce fichier représente l’équivalent d’un fichier journal des transactions. Veillez à activer la case à cocher Fichier journal. Lorsque vous avez terminé, sélectionnez Appliquer.
Vous pouvez ajouter d’autres fichiers à la liste en sélectionnant l’option Nouveau fichier dans le centre de l’écran à l’intérieur de la grille tabulaire. Une fois que vous avez sélectionné Nouveau fichier, vous pouvez taper l’emplacement du fichier et sélectionner les paramètres restants. N’oubliez pas de sélectionner Appliquer. Voici un exemple :
Une fois que vous êtes satisfait de votre configuration, sélectionnez le bouton OK .
Sélectionnez Simulateur>Démarrer pour exécuter la simulation d’E/S SQL. Vous pouvez également sélectionner F12 ou le bouton le plus à gauche avec un cercle vert à l’intérieur.
Attendez que la simulation se termine et examine la sortie.
Exemple 2 : Utiliser un outil en ligne de commande et un fichier de configuration
Modifiez le fichier sqliosim.default.cfg.ini en supprimant les commentaires pour les
File1
sections etFile2
en modifiant lesFileName
valeurs en nouveaux fichiers SQLIOSim. Par exemple :[File1] FileName=D:\sqliosim\sqliosim.mdx InitialSize=100 MaxSize=200 Increment=10 Shrinkable=TRUE LogFile=FALSE Sparse=FALSE [File2] FileName=L:\sqliosim\sqliosim.ldx InitialSize=50 MaxSize=50 Increment=0 Shrinkable=FALSE LogFile=TRUE Sparse=FALSE
Exécutez SQLIOSIM.COM à l’aide du fichier de configuration C :\temp\sqliosimconfig\sqliosim.default.cfg.ini :
SQLIOSIM.COM -cfg C:\temp\sqliosimconfig\sqliosim.default.cfg.ini -log C:\temp\sqliosimconfig\sqliosim.log.xml
Exemple 3 : Utiliser un outil en ligne de commande avec des commutateurs
Vous pouvez tester plusieurs volumes de disque en même temps à l’aide du -dir
commutateur. L’exemple suivant crée des fichiers de 500 Mo et exécute le test pendant 300 secondes (cinq minutes).
SQLIOSIM.COM -cfg C:\temp\sqliosimconfig\sqliosim.default.cfg.ini -log C:\temp\sqliosim\sqliosim.log.xml -dir "D:\sqliosim" -dir "F:\sqliosim\testfolder" -size 500 -d 300
Exemple 4 : Utiliser un outil en ligne de commande sur plusieurs lecteurs
L’exemple suivant crée des fichiers de 32 Go et exécute le test pendant 600 secondes (10 minutes) à l’aide du fichier de configuration sqliosim.hwcache.cfg.ini .
SQLIOSIM.COM -cfg "D:\Temp\SQLIOSIM\SQLIOSIM_Configs\sqliosim.hwcache.cfg.ini" -d 600 -dir D:\temp\sqliosim -log D:\temp\sqliosim\simlog.xml -size 32768
paramètres de ligne de commande SQLIOSim.com
SQLIOSIM.COM accepte un nombre limité de paramètres de ligne de commande pour contrôler le comportement de base. Le fichier de configuration de l’utilitaire SQLIOSim fournit un contrôle de comportement avancé. Lorsque les paramètres de ligne de commande et les options de fichier de configuration se chevauchent, les paramètres de ligne de commande sont prioritaires.
Paramètre | Commentaire |
---|---|
-cfg lime |
Remplacez le fichier de configuration par défaut Sqliosim.cfg.ini. L’utilitaire SQLIOSim retourne une erreur si l’utilitaire ne trouve pas le fichier. |
-save lime |
Enregistrez la configuration résultante dans le fichier de configuration. Vous pouvez utiliser cette option pour créer le fichier de configuration initial. |
-log lime |
Spécifiez le nom du fichier journal des erreurs et le chemin du fichier journal des erreurs. Le nom de fichier par défaut est Sqliosim.log.xml. |
-dir Dir |
Définissez l’emplacement pour créer le fichier de données (.mdf) et le fichier journal (.ldf). Vous pouvez exécuter cette commande plusieurs fois. Dans la plupart des cas, cet emplacement est une racine de lecteur ou un point de montage de volume. Cet emplacement peut être un chemin long ou un chemin UNC. |
-d Secondes |
Définissez la durée de l’exécution principale. Cette valeur exclut la phase de préparation et la phase de vérification. |
-size MO |
Définissez la taille initiale du fichier de données en mégaoctets (Mo). Le fichier peut augmenter jusqu’à deux fois la taille initiale. La taille du fichier journal est calculée comme la moitié de la taille du fichier de données. Toutefois, le fichier journal ne peut pas dépasser 50 Mo. |
Fichier de configuration SQLIOSim
Vous pouvez utiliser un fichier de configuration avec SQLIOSim pour vous aider à choisir tous les paramètres de la simulation d’E/S à l’avant. Ce fichier de configuration peut vous aider à automatiser les exécutions de SQLIOSim.
Vous pouvez télécharger des exemples de fichiers de configuration pour différents tests à partir du dépôt GitHub de l’équipe de support SQL Server.
Vous n’avez pas besoin d’utiliser un fichier de configuration. Si vous n’utilisez pas de fichier de configuration, tous les paramètres prennent des valeurs par défaut, à l’exception de l’emplacement du fichier de données et de l’emplacement du fichier journal. Vous devez utiliser l’une des méthodes suivantes pour spécifier l’emplacement du fichier de données et l’emplacement du fichier journal :
- Utilisez les paramètres de ligne de commande dans le fichier SQLIOSIM.COM .
- Utilisez la boîte de dialogue Fichiers et configuration après avoir exécuté le fichier SQLIOSim.exe .
- Utilisez la section Fichier<N> du fichier de configuration.
Exemples de fichiers de configuration
Cinq exemples de fichiers de configuration sont disponibles si vous souhaitez les utiliser pour les exécutions SQLIOSim automatisées.
Exemple de fichier | Description | Paramètres qui diffèrent du fichier de configuration par défaut |
---|---|---|
sqliosim.default.cfg.ini | ||
sqliosim.hwcache.cfg.ini | - Réduire les lectures - Les fichiers sont petits pour les conserver entièrement en mémoire - Aucune lecture séquentielle |
Pour la section AuditUser et pour la section ReadAheadUser :CacheHitRatio=10000 UserCount=0 |
sqliosim.nothrottle.cfg.ini | - Supprimer la limitation des E/S - Réduire le temps d’attente pour augmenter le volume d’E/S |
TargetIODuration=1000000 AuditDelay=10 RADelay=10 |
sqliosim.seqwrites.cfg.ini | - Réduire les lectures - Les fichiers sont petits pour les conserver entièrement en mémoire - Les fichiers ne peuvent pas être réduits - Aucune lecture séquentielle - Aucun accès aléatoire - Mise à jour en bloc en blocs volumineux sans délai |
Shrinkable=FALSE Pour les sections AuditUser, ReadAheadUser et RandomUser : CacheHitRatio=10000 ForceReadAhead=FALSE BuffersBUMin=600 BuffersBUMax=1000 BUDelay=1 UserCount=0 |
sqliosim.sparse.cfg.ini | - Utiliser uniquement 32 Mo de mémoire - Rendre la durée d’E/S cible suffisamment grande pour permettre de nombreuses demandes d’E/S en attente - Désactiver les API de nuages/de collecte pour émettre des demandes d’E/S distinctes pour chaque page de 8 Ko - Créer un fichier non réduit de 1 Go - Créer un flux partiellement éparse secondaire de 1 Go nonhrinkable dans le fichier |
MaxMemoryMB=32 TestCycles=3 TestCycleDuration=600 TargetIODuration=10000 UseScatterGather=FALSE [File1] FileName=sqliosim.mdx InitialSize=1000 MaxSize=1000 Increment=10 Shrinkable=FALSE LogFile=FALSE Sparse=FALSE [File2] FileName=sqliosim.ldx InitialSize=50 MaxSize=50 Increment=0 Shrinkable=FALSE LogFile=TRUE Sparse=FALSE [File3] FileName=sqliosim.mdx:replica InitialSize=1000 MaxSize=1000 Increment=10 Shrinkable=FALSE LogFile=FALSE Sparse=TRUE |
Mises en garde sur les valeurs des paramètres
- Si le nom du paramètre indique que le paramètre est un ratio ou un pourcentage, la valeur du paramètre est exprimée sous la forme du pourcentage ou du ratio divisé par 0,01. Par exemple, la valeur du
CacheHitRatio
paramètre est10 percent
. Cette valeur est exprimée comme étant due au fait que1000
10 divisé par 0,01 est égal1000
à . La valeur maximale d’un paramètre de pourcentage est10000
. - Si le type de paramètre est numérique et que vous affectez une valeur non numérique au paramètre, l’utilitaire SQLIOSim définit le paramètre
0
sur . - Si le type de paramètre est
Boolean
, les valeurs valides que vous pouvez affecter au paramètre sonttrue
etfalse
. En outre, les valeurs respectent la casse. L’utilitaire SQLIOSim ignore les valeurs non valides. - Si une paire de paramètres indique une valeur minimale et une valeur maximale, la valeur minimale ne doit pas dépasser la valeur maximale. Par exemple, la valeur du
MinIOChainLength
paramètre ne doit pas être supérieure à la valeur duMaxIOChainLength
paramètre. - Si le paramètre indique un certain nombre de pages, l’utilitaire SQLIOSim vérifie la valeur que vous affectez au paramètre par rapport au fichier que l’utilitaire SQLIOSim traite. L’utilitaire SQLIOSim effectue cette vérification pour vous assurer que le nombre de pages ne dépasse pas la taille du fichier.
Sections du fichier de configuration
Il existe plusieurs sections dans le fichier de configuration :
- [CONFIG]
- [RandomUser]
- [AuditUser]
- [ReadAheadUser]
- [BulkUpdateUser]
- [ShrinkUser]
- [Fichier<N>] (l’espace réservé
<N>
est un nombre)
Chacune de ces sections est décrite dans la section suivante.
Section CONFIG
L’utilitaire SQLIOSim accepte les valeurs que vous spécifiez dans la section CONFIG du fichier de configuration SQLIOSim pour établir un comportement de test global.
Paramètre | Valeur par défaut | Description | Commentaires |
---|---|---|---|
ErrorFile |
sqliosim.log.xml | Nom du fichier journal de type XML | |
CPUCount |
Nombre de processeurs sur l’ordinateur | Nombre de processeurs logiques à créer | La valeur maximale est de 64 PROCESSEURs. |
Affinity |
0 | Masque d’affinité de processeur physique à appliquer pour les processeurs logiques | Le masque d’affinité doit se trouver dans le masque uc actif. Une valeur de 0 signifie que toutes les UC disponibles seront utilisées. |
MaxMemoryMB |
Mémoire physique disponible au démarrage de l’utilitaire SQLIOSim | Taille du pool de mémoires tampons en Mo | La valeur ne peut pas dépasser la quantité totale de mémoire physique sur l’ordinateur. |
StopOnError |
true | Arrête la simulation lorsque la première erreur se produit | |
TestCycles |
1 | Nombre de cycles de test complets à effectuer | Une valeur indiquant 0 un nombre infini de cycles de test. |
TestCycleDuration |
300 | Durée d’un cycle de test en secondes, à l’exclusion de la passe d’audit à la fin du cycle | |
CacheHitRatio |
1 000 | Taux d’accès au cache simulé lorsque l’utilitaire SQLIOSim lit à partir du disque | |
MaxOutstandingIO |
0 | Nombre maximal d’opérations d’E/S en attente autorisées à l’échelle du processus | La valeur ne peut pas dépasser 140 000. Une valeur de 0 signifie qu’environ 140 000 opérations d’E/S sont autorisées. Il s’agit de la limite de l’utilitaire. |
TargetIODuration |
100 | Durée des opérations d’E/S, en millisecondes, ciblée par la limitation | Si la durée moyenne des E/S dépasse la durée d’E/S cible, l’utilitaire SQLIOSim limite le nombre d’opérations d’E/S en attente pour réduire la charge et améliorer le temps d’achèvement des E/S. |
AllowIOBursts |
true | Autoriser la désactivation de la limitation pour publier de nombreuses demandes d’E/S | Les rafales d’E/S sont activées pendant la mise à jour initiale, le point de contrôle initial et le point de contrôle final réussis à la fin des cycles de test. Le MaxOutstandingIO paramètre est toujours respecté. Vous pouvez vous attendre à des avertissements d’E/S longs. |
NoBuffering |
true | Utiliser l’option FILE_FLAG_NO_BUFFERING |
SQL Server ouvre des fichiers de base de données à l’aide FILE_FLAG_NO_BUFFERING == true de . Certains utilitaires et services, tels que Analysis Services, utilisent FILE_FLAG_NO_BUFFERING == false . Pour tester entièrement un serveur, exécutez un test pour chaque paramètre. |
WriteThrough |
true | Utiliser l’option FILE_FLAG_WRITE_THROUGH |
SQL Server ouvre des fichiers de base de données à l’aide FILE_FLAG_WRITE_THROUGH == true de . Toutefois, certains utilitaires et services ouvrent les fichiers de base de données à l’aide FILE_FLAG_WRITE_THROUGH == false de . Par exemple, SQL Server Analysis Services ouvre les fichiers de base de données à l’aide FILE_FLAG_WRITE_THROUGH == false de . Pour tester entièrement un serveur, exécutez un test pour chaque paramètre. |
ScatterGather |
true | Utiliser ReadScatter ou WriteGather API |
Si ce paramètre est défini true sur , le NoBuffering paramètre est également défini sur true .SQL Server utilise des E/S de nuages de points/collectes pour la plupart des demandes d’E/S. |
ForceReadAhead |
true | Effectuer une opération en lecture-avance même si les données sont déjà lues | L’utilitaire SQLIOSim émet la commande de lecture même si la page de données se trouve déjà dans le pool de mémoires tampons. Le support Microsoft SQL Server a correctement utilisé le paramètre true pour exposer les problèmes d’E/S. |
DeleteFilesAtStartup |
true | Supprimer des fichiers au démarrage si des fichiers existent | Un fichier peut contenir plusieurs flux de données. Seuls les flux spécifiés dans l’entrée File <N> FileName sont tronqués dans le fichier. Si le flux par défaut est spécifié, tous les flux sont supprimés. |
DeleteFilesAtShutdown |
false | Supprimer des fichiers une fois le test terminé | Un fichier peut contenir plusieurs flux de données. Seuls les flux de données que vous spécifiez dans l’entrée File <N> FileName sont tronqués dans le fichier. Si le flux de données par défaut est spécifié, l’utilitaire SQLIOSim supprime tous les flux de données. |
StampFiles |
false | Développez le fichier en horodatage de zéros | Ce processus peut prendre beaucoup de temps si le fichier est volumineux. Si vous définissez ce paramètre sur false, l’utilitaire SQLIOSim étend le fichier en définissant un marqueur de données valide. SQL Server 2005 utilise la fonctionnalité d’initialisation instantanée des fichiers de données. Si le fichier de données est un fichier journal ou si l’initialisation instantanée de fichier n’est pas activée, SQL Server effectue l’horodatage zéro. Les versions de SQL Server antérieures à SQL Server 2000 effectuent toujours l’horodatage zéro. Vous devez changer la valeur du paramètre pendant le StampFiles test pour vous assurer que l’initialisation instantanée des fichiers et l’horodatage zéro fonctionnent correctement. |
Section N fichier<N>
L’utilitaire SQLIOSim est conçu pour permettre plusieurs tests de fichiers. La File<N>
section est représentée sous la forme [File1]
, [File2]
pour chaque fichier du test.
Paramètre | Valeur par défaut | Description | Commentaires |
---|---|---|---|
FileName |
Aucune valeur par défaut | Nom et chemin de fichier | Le FileName paramètre peut être un chemin long ou un chemin UNC. Il peut également inclure un nom et un type de flux secondaires. Par exemple, le FileName paramètre peut être défini sur file.mdf:stream2 .REMARQUE Dans SQL Server 2005, les opérations DBCC utilisent des flux. Nous vous recommandons d’effectuer des tests de flux. |
InitialSize |
Aucune valeur par défaut | Taille initiale en Mo | Si le fichier existant est supérieur à la valeur spécifiée pour le InitialSize paramètre, l’utilitaire SQLIOSim ne réduit pas le fichier existant. Si le fichier existant est plus petit, l’utilitaire SQLIOSim développe le fichier existant. |
MaxSize |
Aucune valeur par défaut | Taille maximale en Mo | Un fichier ne peut pas dépasser la valeur que vous spécifiez pour le MaxSize paramètre. |
Increment |
0 | Taille en Mo de l’incrément par lequel le fichier augmente ou diminue. Pour plus d’informations, consultez la ShrinkUser section de cet article. |
L’utilitaire SQLIOSim ajuste le Increment paramètre au démarrage afin que la situation soit établie : Increment * MaxExtents < MaxMemoryMB / NumberOfDataFiles .Si la valeur est Increment 0 , l’utilitaire SQLIOSim définit le fichier comme non réductible. |
Shrinkable |
false | Indique si le fichier peut être réduit ou développé | Si vous définissez le Increment paramètre 0 sur , vous définissez le fichier comme non réductible. Dans ce cas, vous devez définir le Shrinkable paramètre sur false . Si vous définissez le Increment paramètre sur une valeur autre que 0 , vous définissez le fichier comme pouvant être réduit. Dans ce cas, vous devez définir le Shrinkable paramètre sur true . |
Sparse |
false | Indique si l’attribut épars doit être défini sur les fichiers | Pour les fichiers existants, l’utilitaire SQLIOSim ne efface pas l’attribut Sparse lorsque vous définissez le Sparse paramètre sur false.SQL Server 2005 utilise des fichiers partiellement alloués pour prendre en charge les bases de données d’instantanés et les flux DBCC secondaires. Nous vous recommandons d’activer le fichier partiellement alloué et les flux, puis d’effectuer une passe de test. REMARQUE Si vous définissez Sparse = true pour les paramètres de fichier, ne spécifiez NoBuffering = false pas dans la config section. Si vous utilisez ces deux combinaisons en conflit, vous pouvez recevoir une erreur semblable à celle de l’outil :Erreur :-=====Error : 0x80070467 Texte d’erreur : lors de l’accès au disque dur, une opération de disque a échoué même après les nouvelles tentatives. Description : Échec de la validation de la mémoire tampon sur la page C :\SQLIOSim.mdx : 28097 |
LogFile |
false | Indique si un fichier contient des données d’utilisateur ou de journal des transactions | Vous devez définir au moins un fichier journal. |
Section RandomUser
L’utilitaire SQLIOSim prend les valeurs que vous spécifiez dans la RandomUser
section pour simuler un worker SQL Server qui effectue des opérations de requête aléatoires, telles que les modèles d’E/S OLTP (Online Transaction Processing).
Paramètre | Valeur par défaut | Description | Commentaires |
---|---|---|---|
UserCount |
-1 | Nombre de threads d’accès aléatoire qui s’exécutent en même temps | La valeur ne peut pas dépasser la valeur : CPUCount*1023-100 .Le nombre total de tous les utilisateurs ne peut pas dépasser cette valeur. La valeur zéro (0) signifie que vous ne pouvez pas créer d’utilisateurs d’accès aléatoire. Une valeur de -1 signifie que vous devez utiliser la configuration automatique de la valeur : min(CPUCount*2, 8) .REMARQUE Un système SQL Server peut avoir des milliers de sessions. La plupart des sessions n’ont pas de requêtes actives. Utilisez la count(*) fonction dans les requêtes sur la sys.dm_exec_requests vue de gestion dynamique (DMV) comme base de référence pour établir cette valeur de paramètre de test.CPUCount ici fait référence à la valeur du CPUCount paramètre dans la CONFIG section.La min(CPUCount*2, 8) valeur entraîne la plus petite taille des valeurs entre CPUCount*2 et 8 . |
JumpToNewRegionPercentage |
500 | La chance d’un saut vers une nouvelle région du fichier | Le début de la région est sélectionné de façon aléatoire. La taille de la région est une valeur aléatoire entre la valeur du MinIOChainLength paramètre et la valeur du MaxIOChainLength paramètre. |
MinIOChainLength |
1 | Taille minimale de la région dans les pages | |
MaxIOChainLength |
100 | Taille maximale de la région dans les pages | SQL Server 2005 Êdition Entreprise et SQL Server 2000 Êdition Entreprise peuvent lire jusqu’à 1 024 pages. La valeur minimale est 0 . La valeur maximale est limitée par la mémoire système.En règle générale, l’activité utilisateur aléatoire provoque de petites opérations d’analyse. Utilisez les valeurs spécifiées dans la ReadAheadUser section pour simuler des opérations d’analyse plus volumineuses. |
RandomUserReadWriteRatio |
9000 | Pourcentage de pages à mettre à jour | Une chaîne de longueur aléatoire est sélectionnée dans la région et peut être lue. Ce paramètre définit le pourcentage des pages à mettre à jour et écrire sur disque. |
MinLogPerBuffer |
64 | Taille minimale de l’enregistrement du journal en octets | La valeur doit être un multiple de la taille du secteur sur disque ou une taille qui s’adapte uniformément à la taille du secteur sur disque. |
MaxLogPerBuffer |
8192 | Taille maximale de l’enregistrement du journal en octets | Cette valeur ne peut pas dépasser 64 000. La valeur doit être un multiple de la taille du secteur sur disque. |
RollbackChance |
100 | La probabilité qu’une opération en mémoire se produise, ce qui entraîne une opération de restauration. | Lorsque cette opération de restauration se produit, SQL Server n’écrit pas dans le fichier journal. |
SleepAfter |
5 | Temps de veille après chaque cycle, en millisecondes |
Section AuditUser
L’utilitaire SQLIOSim prend les valeurs que vous spécifiez dans la section pour simuler l’activité AuditUser
DBCC pour lire et auditer les informations sur la page. La validation se produit même si la valeur du UserCount
paramètre est définie 0
sur .
Paramètre | Valeur par défaut | Description | Commentaires |
---|---|---|---|
UserCount |
2 | Nombre de threads d’audit | La valeur ne peut pas dépasser la valeur suivante : CPUCount*1023-100 .Le nombre total de tous les utilisateurs ne peut pas dépasser cette valeur. Une valeur de 0 signifie que vous ne pouvez pas créer d’utilisateurs d’accès aléatoire. Une valeur de -1 signifie que vous devez utiliser la configuration automatique de la valeur : min(CPUCount*2, 8) .REMARQUE Un système SQL Server peut avoir des milliers de sessions. La plupart des sessions n’ont pas de requêtes actives. Utilisez la count(*) fonction dans les requêtes sur la sys.dm_exec_requests vue dynamique comme base de référence pour établir cette valeur de paramètre de test.CPUCount ici fait référence à la valeur du CPUCount paramètre dans la CONFIG section.La min(CPUCount*2, 8) valeur entraîne la plus petite taille des valeurs entre CPUCount*2 et 8 . |
BuffersValidated |
64 | ||
DelayAfterCycles |
2 | Appliquez le paramètre AuditDelay une fois le nombre de cycles BuffersValidated terminés | |
AuditDelay |
200 | Nombre de millisecondes à attendre après chaque DelayAfterCycles opération |
Section ReadAheadUser
L’utilitaire SQLIOSim accepte les valeurs spécifiées dans la section pour simuler l’activité ReadAheadUser
en lecture-avance SQL Server. SQL Server tire parti de l’activité en lecture-avant pour optimiser les fonctionnalités d’E/S asynchrones et limiter les délais de requête.
Paramètre | Valeur par défaut | Description | Commentaires |
---|---|---|---|
UserCount |
2 | Nombre de threads en lecture-avance | La valeur ne peut pas dépasser la valeur suivante : CPUCount*1023-100 .Le nombre total de tous les utilisateurs ne peut pas dépasser cette valeur. Une valeur de 0 signifie que vous ne pouvez pas créer d’utilisateurs d’accès aléatoire. Une valeur de -1 signifie que vous devez utiliser la configuration automatique de la valeur suivante : min(CPUCount*2, 8) .REMARQUE Un système SQL Server peut avoir des milliers de sessions. La plupart des sessions n’ont pas de requêtes actives. Utilisez la count(*) fonction dans les requêtes sur la sys.dm_exec_requests vue dynamique comme base de référence pour établir cette valeur de paramètre de test.CPUCount ici fait référence à la valeur du CPUCount paramètre dans la section CONFIG.La min(CPUCount*2, 8) valeur entraîne la plus petite taille des valeurs entre CPUCount*2 et 8 . |
BuffersRAMin |
32 | Nombre minimal de pages à lire par cycle | La valeur minimale est 0 . La valeur maximale est limitée par la mémoire système. |
BuffersRAMax |
64 | Nombre maximal de pages à lire par cycle | SQL Server Entreprise éditions peuvent lire jusqu’à 1 024 pages dans une seule requête. Si vous installez SQL Server sur un ordinateur qui a beaucoup de ressources processeur, mémoire et disque, nous vous recommandons d’augmenter la taille du fichier et la taille en lecture-avance. |
DelayAfterCycles |
2 | Appliquer le RADelay paramètre une fois le nombre spécifié de cycles terminé |
|
RADelay |
200 | Nombre de millisecondes à attendre après chaque DelayAfterCycles opération |
Section BulkUpdateUser
L’utilitaire SQLIOSim accepte les valeurs que vous spécifiez dans la BulkUpdateUser
section pour simuler des opérations en bloc, telles que SELECT...INTO
des opérations et BULK INSERT
des opérations.
Paramètre | Valeur par défaut | Description | Commentaires |
---|---|---|---|
UserCount |
-1 | Nombre de BULK UPDATE threads |
La valeur ne peut pas dépasser la valeur suivante : CPUCount*1023-100 Une valeur de -1 signifie que vous devez utiliser la configuration automatique de la valeur suivante : min(CPUCount*2, 8) .REMARQUE Un système SQL Server peut avoir des milliers de sessions. La plupart des sessions n’ont pas de requêtes actives. Utilisez la count(*) fonction dans les requêtes sur la sys.dm_exec_requests vue dynamique comme base de référence pour établir cette valeur de paramètre de test.CPUCount ici fait référence à la valeur du CPUCount paramètre dans la CONFIG section.La min(CPUCount*2, 8) valeur entraîne la plus petite taille des valeurs entre CPUCount*2 et 8 . |
BuffersBUMin |
64 | Nombre minimal de pages à mettre à jour par cycle | |
BuffersBUMax |
128 | Nombre maximal de pages à mettre à jour par cycle | La valeur minimale est 0 . La valeur maximale est limitée par la mémoire système. |
DelayAfterCycles |
2 | Appliquer le BUDelay paramètre une fois le nombre spécifié de cycles terminé |
|
BUDelay |
10 | Nombre de millisecondes à attendre après chaque DelayAfterCycles opération |
Section ShrinkUser
L’utilitaire SQLIOSim accepte les valeurs que vous spécifiez dans la ShrinkUser
section pour simuler les opérations de réduction DBCC. L’utilitaire SQLIOSim peut également utiliser la ShrinkUser
section pour augmenter le fichier.
Paramètre | Valeur par défaut | Description |
---|---|---|
MinShrinkInterval |
120 | Intervalle minimal entre les opérations de réduction en secondes |
MaxShrinkInterval |
600 | Intervalle maximal entre les opérations de réduction en secondes |
MinExtends |
1 | Nombre minimal d’incréments par lesquels l’utilitaire SQLIOSim augmente ou réduit le fichier |
MaxExtends |
20 | Nombre maximal d’incréments par lesquels l’utilitaire SQLIOSim augmente ou réduit le fichier |
Commentaires de fichier de configuration .ini
Le point-virgule (;) au début d’une ligne dans le fichier de configuration .ini provoque le traitement de la ligne comme un commentaire unique.
Création de fichiers
L’utilitaire SQLIOSim crée des fichiers de données et des fichiers journaux distincts pour simuler les modèles d’E/S générés par SQL Server dans son fichier de données et son fichier journal. L’utilitaire SQLIOSim n’utilise pas le moteur SQL Server pour effectuer une activité de stress. Par conséquent, vous pouvez utiliser l’utilitaire SQLIOSim pour tester un ordinateur avant d’installer SQL Server.
Lorsque vous exécutez l’utilitaire SQLIOSim, veillez à spécifier le même emplacement de fichier que celui que vous utilisez pour vos fichiers de base de données SQL Server. Lorsque vous effectuez cette opération, l’utilitaire simule le même chemin d’E/S que votre base de données SQL Server.
Vous pouvez activer les attributs compresser ou chiffrer les fichiers de test existants. Vous pouvez également activer ces attributs pour le répertoire existant dans lequel les fichiers de test seront créés. Les options correspondantes pour activer ces attributs se trouvent dans la boîte de dialogue Propriétés d’un fichier ou d’un répertoire.
Par défaut, l’utilitaire SQLIOSim crée des fichiers de test qui ont les extensions de nom de fichier .mdx et .ldx . Par conséquent, ces fichiers ne remplacent pas les fichiers journaux et les données existantes.
Avertissement
Ne spécifiez pas les fichiers de base de données SQL Server réels à tester. L’utilitaire SQLIOSim remplacera les données avec des modèles de test aléatoires, et vos données SQL Server réelles seront perdues.
Journal et gestion des erreurs SQLIOSim
L’utilitaire SQLIOSim crée le fichier journal des erreurs dans l’un des emplacements suivants :
- Emplacement que vous spécifiez dans le paramètre de démarrage du journal
- Emplacement que vous spécifiez dans la
ErrorFile=
ligne du fichier Sqliosim.cfg.ini
Le journal des erreurs SQLIOSim.log.xml contient des détails sur l’exécution. Ces détails incluent les informations d’erreur. Passez en revue attentivement le journal pour obtenir des informations sur les erreurs et les informations d’avertissement.
Note
Si vous rencontrez une erreur dans l’utilitaire SQLIOSim, nous vous recommandons de demander à votre fabricant de matériel de déterminer la cause racine du problème. Le problème peut également être dû à un pilote de périphérique, à un pilote de filtre de système de fichiers (par exemple, antivirus) ou au système d’exploitation.
Copies multiples
L’utilitaire SQLIOSim s’adapte aux tests de plusieurs fichiers et aux tests au niveau de plusieurs utilisateurs. L’utilitaire SQLIOSim ne nécessite pas plusieurs appels. Vous pouvez exécuter plusieurs copies de l’utilitaire SQLIOSim si les conditions suivantes sont remplies :
- Toutes les copies référencent des fichiers de test uniques par instance de l’utilitaire.
- Le
MaxMemoryMB
paramètre de chaque instance fournit une région de mémoire qui ne se chevauche pas, suffisante pour chaque instance.
La somme du MaxMemoryMB
paramètre pour chaque instance doit être inférieure ou égale à la mémoire physique totale. Certaines phases de test, telles que la simulation de point de contrôle, peuvent être gourmandes en mémoire et peuvent créer des conditions de mémoire insuffisante lorsque vous exécutez plusieurs copies. Si vous rencontrez des erreurs hors mémoire, vous pouvez réduire le nombre de copies utilitaires en cours d’exécution.