Partager via


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

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

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

    Capture d’écran montrant la configuration du fichier.

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

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

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

    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.

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

    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 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 :

    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 que la simulation se termine et examine 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 pour les File1 sections et File2 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 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
-cfglime 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.
-savelime Enregistrez la configuration résultante dans le fichier de configuration. Vous pouvez utiliser cette option pour créer le fichier de configuration initial.
-loglime 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.
-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 principale. Cette valeur exclut la phase de préparation et la phase de vérification.
-sizeMO 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 est 10 percent. Cette valeur est exprimée comme étant due au fait que 1000 10 divisé par 0,01 est égal 1000à . La valeur maximale d’un paramètre de pourcentage est 10000.
  • 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 0sur .
  • 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 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 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 :

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 == 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 des 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 ReadScatter ou WriteGather API Si ce paramètre est défini truesur , 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 0sur , 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 0sur .

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.

References