Utiliser l’utilitaire SQLIOSim pour simuler SQL Server activité sur un sous-système de disque

Cet article explique comment utiliser l’utilitaire SQLIOSim pour effectuer des tests de contrainte sur des sous-systèmes de disque afin de simuler SQL Server activité.

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 des sous-systèmes de disque que SQL Server utilise. Ces tests SQLIOSim simulent des 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 SQL Server modèles d’E/S, consultez SQL Server Principes de base des E/S, 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 SQL Server 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 vous aider à 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 un 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 ni ne garantit la sécurité ou l’intégrité des données. L’utilitaire est conçu pour fournir des tests de base d’un environnement système. L’utilitaire SQLIOSim peut exposer des problèmes d’intégrité des données potentiels.

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 plutôt l’outil Diskspd .

L’utilitaire SQLIOSim remplace l’utilitaire SQLIOStress, anciennement appelé utilitaire SQL70IOStress.

Emplacement SQLIOSim

Auparavant, SQLIOSim était livré 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 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 de l’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 des 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 Fichier de configuration SQLIOSim .

Utiliser SQLIOSim sur un ordinateur 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 fichiers de données et de 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 d’exécuter les tests avant une installation SQL Server. Copiez SQLIOSim.com, SQLIOSim.exeet éventuellement un ou plusieurs fichiers de configuration si vous envisagez d’utiliser des paramètres préconfigurés. Ensuite, exécutez la simulation de test sur cette machine.

Comment utiliser SQLIOSim

Vous n’avez pas besoin que le service SQL Server s’exécute pendant que vous exécutez SQLIOSim. En fait, nous vous recommandons de ne pas exécuter SQL Server pendant que SQLIOSim est en cours d’exécution, 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 à des fins de test. L’utilitaire SQLIOSim remplace les données par des modèles de test aléatoires, et vos données SQL Server réelles seront perdues.

Les exemples suivants montrent comment exécuter SQLIOSim à l’aide de l’interface graphique graphique et de la ligne de commande.

Exemple 1 : Utiliser l’interface graphique graphique

  1. Accédez à C :\Program Files\Microsoft SQL Server\MSSQLXX.<InstanceName>\MSSQL\Binn.

  2. Démarrez l’applicationSQLIOSIM.EXE . Vous pouvez voir la fenêtre Fichiers et configuration , qui contient certains paramètres par défaut. Vous pouvez modifier ces paramètres en fonction de vos besoins de configuration.

    Capture d’écran montrant la configuration du fichier.

  3. Mettez en surbrillance le premier fichier mdxC :\temp\sqliosim\sqliosim.mdx dans la liste. Ce fichier est l’équivalent d’un fichier de données.

  4. Modifiez les paramètres du fichier en modifiant son emplacement, sa taille, sa taille maximale ou son incrément. Conservez la case Fichier journal décochée car vous souhaitez simuler un fichier de données. Sélectionnez ensuite le bouton Appliquer .

    Capture d’écran montrant la configuration du fichier de données.

    L’exemple montre que l’emplacement du fichier est remplacé par D :\temp\sqliosim\sqliosim.mdx, sa taille est définie sur 2 048 Mo, sa taille maximale est définie sur 4 096 Mo et sa taille incrémentielle est définie sur 64 Mo.

  5. Modifiez le deuxième fichier avec le suffixe ldx . Ce fichier représente l’équivalent d’un fichier journal des transactions. Veillez à garder la case à cocher Fichier journal activée. Sélectionnez Appliquer lorsque vous avez terminé.

    Capture d’écran de la configuration du fichier journal.

  6. Vous pouvez ajouter d’autres fichiers à la liste en sélectionnant l’option Nouveau fichier au 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 :

    Capture d’écran de l’ajout d’un nouveau fichier de test.

  7. Une fois que vous êtes satisfait de votre configuration, sélectionnez le bouton OK .

  8. 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.

    Capture d’écran montrant un SQLIOSim en cours d’exécution.

  9. Attendez la fin de la simulation et examinez la sortie.

Exemple 2 : Utiliser un outil en ligne de commande et un fichier de configuration

  1. Modifiez le fichier sqliosim.default.cfg.ini en supprimant les commentaires des File1 sections et File2 et en modifiant les FileName 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
    
  2. Exécutez SQLIOSIM.COM à l’aide du fichier de configurationC:\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 configurationsqliosim.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

SQLIOSim.com paramètres de ligne de commande

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
-cfgFichier Remplacez le Sqliosim.cfg.ini fichier de configuration par défaut. L’utilitaire SQLIOSim retourne une erreur si l’utilitaire ne trouve pas le fichier.
-saveFichier Enregistrez la configuration résultante dans le fichier de configuration. Vous pouvez utiliser cette option pour créer le fichier de configuration initial.
-logFichier Spécifiez le nom du fichier journal des erreurs et le chemin d’accès au fichier journal des erreurs. Le nom de fichier par défaut est Sqliosim.log.xml.
-dirDir 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.
-dSecondes Définissez la durée de l’exécution main. Cette valeur exclut la phase de préparation et la phase de vérification.
-sizeMB Définissez la taille initiale du fichier de données en mégaoctets (Mo). Le fichier peut atteindre 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 être supérieur à 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’avance. Ce fichier de configuration peut vous aider à automatiser les exécutions de SQLIOSim.

Des exemples de fichiers de configuration pour différents tests peuvent être téléchargés à 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 les 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 File<N> du fichier de configuration.

Exemples de fichiers de configuration

Cinq exemples de fichiers de configuration sont disponibles si vous souhaitez les utiliser pour des 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 sont rendus non réductibles

- 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 seulement 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 diffusion/collecte pour émettre des demandes d’E/S distinctes pour chaque page de 8 Ko

- Créer un fichier non réductible de 1 Go

- Créer un flux secondaire éparse nonhrinkable de 1 Go 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

Avertissements sur les valeurs de paramètre

  • 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 en pourcentage ou le ratio divisé par 0,01. Par exemple, la valeur du CacheHitRatio paramètre est 10 percent. Cette valeur est exprimée comme étant donné que 1000 10 divisé par 0,01 est 1000égal à . La valeur maximale d’un paramètre de pourcentage est 10000.
  • Si le type de paramètre est numérique et que vous attribuez une valeur non numérique au paramètre, l’utilitaire SQLIOSim définit le paramètre sur 0.
  • Si le type de paramètre est Boolean, les valeurs valides que vous pouvez affecter au paramètre sont true et false. En outre, les valeurs respectent la casse. L’utilitaire SQLIOSim ignore toutes 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 du MaxIOChainLength paramètre .
  • Si le paramètre indique un nombre de pages, l’utilitaire SQLIOSim vérifie la valeur que vous attribuez au paramètre par rapport au fichier traité par l’utilitaire SQLIOSim. L’utilitaire SQLIOSim effectue cette case activée pour s’assurer que le nombre de pages ne dépasse pas la taille du fichier.

Sections du fichier de configuration

Le fichier de configuration comporte plusieurs sections :

Chacune de ces sections est décrite dans la section suivante.

Section CONFIG

L’utilitaire SQLIOSim prend 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 Comments
ErrorFile sqliosim.log.xml Nom du fichier journal de type XML
CPUCount Nombre de processeurs sur l’ordinateur Nombre d’uc 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 de processeur actif. Une valeur de 0 signifie que tous les processeurs disponibles seront utilisés.
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 La valeur indique 0 un nombre infini de cycles de test.
TestCycleDuration 300 Durée d’un cycle de test en secondes, à l’exclusion de la réussite d’audit à la fin du cycle
CacheHitRatio 1000 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 que jusqu’à 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 lors de la mise à jour initiale, du point de contrôle initial et des points de contrôle finaux à la fin des cycles de test. Le MaxOutstandingIO paramètre est toujours respecté. Vous pouvez vous attendre à de longs avertissements d’E/S.
NoBuffering true Utiliser l’option FILE_FLAG_NO_BUFFERING SQL Server ouvre les fichiers de base de données à l’aide FILE_FLAG_NO_BUFFERING == truede . 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 les fichiers de base de données à l’aide FILE_FLAG_WRITE_THROUGH == truede . Toutefois, certains utilitaires et services ouvrent les fichiers de base de données à l’aide FILE_FLAG_WRITE_THROUGH == falsede . Par exemple, SQL Server Analysis Services ouvre les fichiers de base de données à l’aide FILE_FLAG_WRITE_THROUGH == falsede . Pour tester entièrement un serveur, exécutez un test pour chaque paramètre.
ScatterGather true Utiliser les ReadScatter API ou WriteGather Si ce paramètre est défini sur true, le NoBuffering paramètre est également défini sur true.

SQL Server utilise des E/S de nuages de points/regroupements pour la plupart des demandes d’E/S.
ForceReadAhead true Effectuer une opération de lecture anticipée même si les données sont déjà lues L’utilitaire SQLIOSim émet la commande read 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 s’il existe des fichiers 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 les 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évelopper le fichier en horodatage des 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 de fichier instantanée pour les fichiers de données. Si le fichier de données est un fichier journal, ou si l’initialisation instantanée du 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 du fichier et l’horodatage zéro fonctionnent correctement.

Section N> de fichier<

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 Comments
FileName Aucune valeur par défaut Nom de fichier et chemin d’accès 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.

NOTE 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 se réduit. 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 de Increment est 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 paramètre sur Increment0, vous définissez le fichier sur qu’il ne peut pas être réduit. Dans ce cas, vous devez définir le paramètre sur Shrinkablefalse. 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 paramètre sur Shrinkabletrue.
Sparse false Indique si l’attribut Partiellement alloué doit être défini sur les fichiers Pour les fichiers existants, l’utilitaire SQLIOSim n’efface pas l’attribut Partiellement alloué lorsque vous définissez le paramètre sur Sparse false.

SQL Server 2005 utilise des fichiers partiellement alloués pour prendre en charge les bases de données instantané et les flux DBCC secondaires.

Nous vous recommandons d’activer le fichier partiellement alloué et les flux, puis d’effectuer une passe de test.

NOTE 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 qui ressemble à ce qui suit 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 de nouvelles tentatives.
Description : Échec de la validation de la mémoire tampon sur C :\SQLIOSim.mdx Page : 28097
LogFile false Indique si un fichier contient des données utilisateur ou du 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 SQL Server worker 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 Comments
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 non plus 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).
NOTE Un système SQL Server peut comporter 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 fait ici référence à la valeur du CPUCount paramètre dans la CONFIG section .

La min(CPUCount*2, 8) valeur entraîne la plus petite des valeurs comprises entre CPUCount*2 et 8.
JumpToNewRegionPercentage 500 Le risque d’un saut vers une nouvelle région du fichier Le début de la région est sélectionné de manière 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 de région maximale 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 entraîne de petites opérations d’analyse. Utilisez les valeurs spécifiées dans la ReadAheadUser section pour simuler des opérations d’analyse plus importantes.
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 de pages à mettre à jour et à écrire sur le disque.
MinLogPerBuffer 64 Taille minimale de l’enregistrement de 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 de 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 Risque qu’une opération en mémoire se produise et provoque 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 afin de lire et d’auditer les informations relatives à la page. La validation se produit même si la valeur du UserCount paramètre est définie sur 0.

Paramètre Valeur par défaut Description Comments
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 non plus dépasser cette valeur. Une valeur de signifie que vous ne pouvez pas créer d’utilisateurs 0 d’accès aléatoire. Une valeur de -1 signifie que vous devez utiliser la configuration automatique de la valeur : min(CPUCount*2, 8).
NOTE Un système SQL Server peut comporter 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 DMV comme base de référence pour établir cette valeur de paramètre de test.

CPUCount fait ici référence à la valeur du CPUCount paramètre dans la CONFIG section .

La min(CPUCount*2, 8) valeur entraîne la plus petite des valeurs comprises entre CPUCount*2 et 8.
BuffersValidated 64
DelayAfterCycles 2 Appliquer le paramètre AuditDelay une fois le nombre de cycles BuffersValidated terminé
AuditDelay 200 Nombre de millisecondes à attendre après chaque DelayAfterCycles opération

Section ReadAheadUser

L’utilitaire SQLIOSim prend les valeurs spécifiées dans la ReadAheadUser section pour simuler SQL Server’activité de lecture anticipée. SQL Server tire parti de l’activité de lecture anticipée pour optimiser les fonctionnalités d’E/S asynchrones et limiter les délais de requête.

Paramètre Valeur par défaut Description Comments
UserCount 2 Nombre de threads de lecture anticipée La valeur ne peut pas dépasser la valeur suivante : CPUCount*1023-100.
Le nombre total de tous les utilisateurs ne peut pas non plus dépasser cette valeur. Une valeur de signifie que vous ne pouvez pas créer d’utilisateurs 0 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).
NOTE Un système SQL Server peut comporter 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 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 section CONFIG.

La min(CPUCount*2, 8) valeur entraîne la plus petite des valeurs comprises 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 en une seule requête. Si vous installez SQL Server sur un ordinateur disposant de nombreuses ressources de processeur, de mémoire et de disque, nous vous recommandons d’augmenter la taille du fichier et la taille de lecture anticipée.
DelayAfterCycles 2 Appliquer le RADelay paramètre une fois le nombre de cycles spécifié terminé
RADelay 200 Nombre de millisecondes à attendre après chaque DelayAfterCycles opération

Section BulkUpdateUser

L’utilitaire SQLIOSim prend 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 Comments
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).
NOTE Un système SQL Server peut comporter 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 DMV comme base de référence pour établir cette valeur de paramètre de test.

CPUCount fait ici référence à la valeur du CPUCount paramètre dans la CONFIG section .

La min(CPUCount*2, 8) valeur entraîne la plus petite des valeurs comprises 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 de cycles spécifié terminé
BUDelay 10 Nombre de millisecondes à attendre après chaque DelayAfterCycles opération

Section ShrinkUser

L’utilitaire SQLIOSim prend les valeurs que vous spécifiez dans la ShrinkUser section pour simuler des opérations de réduction DBCC. L’utilitaire SQLIOSim peut également utiliser la ShrinkUser section pour faire croître 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 du fichier .ini de configuration

Le point-virgule (;) au début d’une ligne dans le fichier de.ini de configuration entraîne le traitement de la ligne comme un seul commentaire.

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 contrainte. 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. Dans ce cas, 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 pour 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 de données et les fichiers journaux existants.

Avertissement

Ne spécifiez pas les fichiers de base de données SQL Server réels à des fins de test. L’utilitaire SQLIOSim remplace les données par 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 erreursSQLIOSim.log.xml contient des détails sur l’exécution. Ces détails incluent des informations d’erreur. Examinez attentivement le journal pour obtenir des informations sur les erreurs et des informations d’avertissement.

Remarque

Si vous rencontrez une erreur dans l’utilitaire SQLIOSim, nous vous recommandons de demander à votre fabricant de matériel de l’aider à 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, un antivirus) ou au système d’exploitation.

Plusieurs copies

L’utilitaire SQLIOSim peut prendre en charge les tests de niveau fichier multiple et de niveau utilisateur multiple. 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 font référence à 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 et qui est 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 nécessiter beaucoup de mémoire et créer des conditions de mémoire insuffisante lorsque vous exécutez plusieurs copies. Si vous rencontrez des erreurs de mémoire insuffisante, vous pouvez réduire le nombre de copies de l’utilitaire en cours d’exécution.

References