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

Version du produit d’origine : SQL Server
Numéro de la base de connaissances d’origine : 231619

Résumé

L’outil SQLIOSim exécute des tests de contrainte de fiabilité et d’intégrité sur les sous-systèmes de disque en simulant des modèles d’E/S Microsoft SQL Server. Ces tests incluent les activités de lecture, d’écriture, de point de contrôle, de sauvegarde, de tri et de lecture anticipée. Utilisez SQLIOSim pour valider votre sous-système d’E/S avant de déployer SQL Server sur le nouveau matériel. L'outil fonctionne indépendamment du moteur de SQL Server et ne nécessite pas de SQL Server d'être en cours d'exécution.

Présentation de SQLIOSim

SQLIOSim simule les modèles de lecture et d’écriture (lectures de pages, point de contrôle, sauvegarde, tri, lecture avant) d’un système SQL Server pour identifier les problèmes d’E/S potentiels. L’objectif principal des tests de simulation d’E/S consiste à vérifier la fiabilité du sous-système d’E/S sous-jacent avant que SQL Server commence à l’utiliser. Pour plus d’informations sur les notions de base des E/S SQL Server, consultez SQL Server notions de base des E/S.

SQLIOSim n'interagit pas avec SQL Server et ne nécessite pas d'exécution de SQL Server. Dans la plupart des cas, exécutez 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.

Avertissement

Ne pointez pas vers ou n'utilisez pas de fichiers de base de données réels SQL Server dans votre test SQLIOSim, car l'outil utilise des modèles de test aléatoires pour remplacer les fichiers.

SQLIOSim ne garantit pas la sécurité ou l’intégrité des données. L’outil fournit des tests de base d’un environnement système et 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 exécuter des benchmarks de performances et déterminer la capacité de débit des E/S, utilisez l’outil Diskspd à la place.

Tip

Exécutez SQLIOSim sur chaque nouvelle configuration de stockage avant le déploiement de production. Ce test permet de s’assurer que le système respecte la sémantique d’ordre d’écriture et de vidage même si les couches de mise en cache sont présentes. Ces couches incluent le cache du contrôleur, la mise en mémoire tampon du microprogramme et les optimisations SAN.

Emplacement SQLIOSim

SQLIOSim était précédemment disponible en tant que package de téléchargement distinct. À compter de Microsoft 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. Utilisez cette version mise à jour de l’outil pour simuler l’activité d’E/S sur le sous-système de disque.

Le package SQLIOSim comprend trois fichiers. 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 à l’aide de paramètres de ligne de commande, d’un fichier de configuration ou d’une combinaison des 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.
  • Utilisez des fichiers de configuration pour automatiser la simulation d’E/S à l’aide de SQLIOSim. Pour plus d’informations, consultez la section du fichier de configuration SQLIOSim.

Utiliser SQLIOSim sur un ordinateur sans SQL Server

Exécutez 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 et de vérifier sa fiabilité. Pour ce faire, copiez les fichiers SQLIOSim à partir d’un ordinateur sur lequel SQL Server est installé et exécutez les tests avant d’installer 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. Ensuite, exécutez la simulation de test sur cet ordinateur.

Utilisation de SQLIOSim

Vous n'avez pas besoin du service SQL Server à exécuter pendant l'exécution de SQLIOSim. En fait, n'exécutez pas SQL Server pendant l'exécution de SQLIOSim, car les applications peuvent concurrencer les ressources d'E/S.

Avertissement

Pour éviter de perdre vos données SQL Server réelles, ne spécifiez pas les fichiers de base de données réels SQL Server pour les tests. L’outil SQLIOSim remplace les données à l’aide de modèles de test aléatoires.

Les exemples suivants montrent comment exécuter SQLIOSim à l’aide de l’interface utilisateur utilisateur 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 .

  3. Recherchez dans la fenêtre Fichiers et Configuration les paramètres par défaut que vous pouvez modifier pour répondre à vos besoins de configuration.

    Capture d’écran montrant la configuration du fichier.

  4. Sélectionnez le premier fichier mdx dans la liste, C :\temp\sqliosim\sqliosim.mdx. Ce fichier est l’équivalent d’un fichier de données.

  5. Modifiez les paramètres de fichier, tels que l’emplacement, la taille, la taille maximale ou l’incrément des fichiers. Conservez l’option Fichier journal effacée, car vous souhaitez simuler un fichier de données. Sélectionnez ensuite 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 2048 Mo, sa taille maximale est définie sur 4096 Mo et sa taille d’incrément est définie sur 64 Mo.

  6. Modifiez le deuxième fichier, celui qui a le suffixe ldx . Ce fichier représente l’équivalent d’un fichier journal des transactions. Vérifiez que l’option Fichier journal reste sélectionnée. Une fois que vous avez terminé, sélectionnez Appliquer.

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

  7. Ajoutez 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. Tapez l’emplacement du fichier, puis définissez les options restantes. Une fois que vous avez terminé, sélectionnez Appliquer. Prenons un exemple.

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

  8. Lorsque vous êtes satisfait de votre configuration, sélectionnez OK.

  9. Pour exécuter la simulation d’E/S SQL, sélectionnezDémarrer du >. Vous pouvez également sélectionner F12 ou le bouton le plus à gauche qui contient un cercle vert.

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

  10. Attendez que la simulation se termine, puis 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 . Supprimez les commentaires des sections File1 et File2, et modifiez les valeurs FileName 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 32 Go de fichiers 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

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’outil SQLIOSim fournit un contrôle de comportement avancé. Si 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 Description
-cfg fichier Remplacez le fichier de configuration par défaut Sqliosim.cfg.ini. L’outil SQLIOSim génère une erreur s’il ne trouve pas le fichier.
-save fichier Enregistrez la configuration résultante dans le fichier de configuration. Utilisez cette option pour créer le fichier de configuration initial.
-log fichier 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

Utilisez 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 permettre d’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 technique 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

Utilisez ces cinq exemples de fichiers de configuration 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éduit les lectures

- Conserve les fichiers 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 - Supprime la limitation des E/S

- Réduit le temps d’attente pour augmenter le volume d’E/S
TargetIODuration=1000000
AuditDelay=10
RADelay=10
sqliosim.seqwrites.cfg.ini - Réduit les lectures

- Conserve les fichiers petits pour les conserver entièrement en mémoire

- Rend les fichiers non compressibles

- Aucune lecture séquentielle

- Aucun accès aléatoire

- Mise à jour en masse de grandes quantités 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 - Utilise uniquement 32 Mo de mémoire

- Rend la durée d’E/S cible suffisamment grande pour permettre de nombreuses demandes d’E/S en attente

- Désactive les API scatter/gather pour émettre des demandes d’E/S distinctes pour chaque page de 8 Ko

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

- Crée un flux éparse secondaire non modifiable 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

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 1000 parce que 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’outil SQLIOSim définit le paramètre 0sur .
  • Si le type de paramètre est booléen, les valeurs valides que vous pouvez affecter au paramètre sont true et false. En outre, les valeurs sont sensibles à la casse. L’outil 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’outil SQLIOSim vérifie la valeur que vous affectez au paramètre par rapport au fichier que l’outil SQLIOSim traite. L’outil 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

Le fichier de configuration contient plusieurs sections :

Chaque section de configuration est décrite dans la section suivante.

Section CONFIG

L’outil SQLIOSim utilise les valeurs que vous spécifiez dans la section CONFIG du fichier de configuration SQLIOSim pour établir le 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 CPU actif. Valeur de 0 signifie que toutes les UC disponibles sont utilisées.
MaxMemoryMB Mémoire physique disponible au démarrage de l’outil 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 vrai Arrête la simulation lorsque la première erreur se produit
TestCycles 1 Nombre de cycles de test complets à effectuer Une valeur de 0 indique un nombre infini de cycles de test.
TestCycleDuration 300 Durée d’un cycle de test en secondes, à l’exclusion de l’audit final à la fin du cycle
CacheHitRatio 1 000 Taux d’accès au cache simulé lorsque l’outil 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’outil.
TargetIODuration 100 Durée des opérations d’E/S, en millisecondes, visée par le contrôle de la bande passante Si la durée moyenne des E/S dépasse la durée d’E/S cible, l’outil 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 du contrôle de la limitation pour effectuer de nombreuses demandes d’Entrées/Sorties (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 à 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 de FILE_FLAG_NO_BUFFERING == true. 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 de FILE_FLAG_WRITE_THROUGH == true. Toutefois, certains outils et services ouvrent les fichiers de base de données à l’aide de FILE_FLAG_WRITE_THROUGH == false. Par exemple, SQL Server Analysis Services ouvre les fichiers de base de données à l’aide de FILE_FLAG_WRITE_THROUGH == false. Pour tester entièrement un serveur, exécutez un test pour chaque paramètre.
ScatterGather true Utiliser ReadScatter ou WriteGather API Si vous définissez le paramètre true sur true, le paramètre NoBuffering est également défini sur true.

SQL Server utilise les E/S scatter/gather pour la plupart des demandes d’E/S.
ForceReadAhead vrai Effectuez une opération en lecture-avance même si les données sont déjà lues. L’outil 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’outil SQLIOSim supprime tous les flux de données.
StampFiles faux Développez le fichier en le remplissant 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’outil 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 appliquent toujours un horodatage de zéro.

Vous devez changer la valeur du paramètre StampFiles lors du test pour vous assurer que l’initialisation instantanée des fichiers et l’horodatage zéro fonctionnent correctement.

Section N fichier<N>

L’outil 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. Les tests de flux sont recommandés.
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’outil SQLIOSim ne réduit pas le fichier existant. Si le fichier existant est plus petit, l’outil 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’outil 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’outil SQLIOSim définit le fichier comme non rétrécissable.
Shrinkable faux Indique si le fichier peut être réduit ou développé Si vous définissez le paramètre Increment sur 0, vous définissez le fichier comme non compressible. 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 faux Indique si l’attribut Sparse doit être défini sur les fichiers Pour les fichiers existants, l’outil SQLIOSim ne efface pas l’attribut Sparse lorsque vous définissez le Sparse paramètre sur false.

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

Activez à la fois le fichier clairsemé et les flux, puis réalisez 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 un message d’erreur semblable à ce qui suit à partir 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 Définissez au moins un fichier journal.

Section RandomUser

L'outil SQLIOSim utilise les valeurs que vous spécifiez dans la section RandomUser pour simuler un worker SQL Server qui effectue des opérations de requête aléatoires, telles que des 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).
NOTE Un système de 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 en 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 de log 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 retrait. 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’outil SQLIOSim prend les valeurs que vous spécifiez dans la section AuditUser pour simuler l’activité DBCC et 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).
NOTE Un système SQL Server peut avoir des milliers de sessions. La plupart des sessions n’ont pas de requêtes actives. Utilisez la fonction count(*) dans les requêtes sur la vue de gestion dynamique sys.dm_exec_requests 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 produit la plus petite 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'outil SQLIOSim accepte les valeurs spécifiées dans la section ReadAheadUser afin de simuler l'activité de lecture anticipée de 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 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 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 fonction count(*) dans les requêtes sur la vue de gestion dynamique sys.dm_exec_requests 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, augmentez 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’outil SQLIOSim prend les valeurs que vous spécifiez dans la section BulkUpdateUser pour simuler des opérations en bloc, telles que les opérations SELECT...INTO et les opérations BULK INSERT.

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 fonction count(*) dans les requêtes sur la vue de gestion dynamique sys.dm_exec_requests 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 Utilisateur-réduit

L’outil SQLIOSim accepte les valeurs que vous spécifiez dans la ShrinkUser section pour simuler les opérations de réduction DBCC. L’outil SQLIOSim peut également utiliser la ShrinkUser section pour développer 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’outil SQLIOSim augmente ou réduit le fichier
MaxExtends 20 Nombre maximal d’incréments par lesquels l’outil 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’outil SQLIOSim crée des fichiers de données et des fichiers journaux distincts pour simuler les modèles d’E/S que SQL Server génère dans ses fichiers de données et de journal. L'outil SQLIOSim n'utilise pas le moteur de SQL Server pour effectuer une activité de stress. Par conséquent, vous pouvez utiliser l’outil SQLIOSim pour tester un ordinateur avant d’installer SQL Server.

Lorsque vous exécutez l’outil 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’outil simule le même chemin d’E/S que celui utilisé par 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 sont 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’outil 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 existants.

Avertissement

Pour éviter de perdre vos données SQL Server réelles, ne spécifiez pas les fichiers de base de données réels SQL Server pour les tests. L’outil SQLIOSim remplace les données à l’aide de modèles de test aléatoires.

Gestion et journal des erreurs SQLIOSim

L’outil SQLIOSim crée le fichier journal des erreurs à l’un des emplacements suivants :

  • L'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’outil SQLIOSim, demandez à 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, un logiciel antivirus) ou au système d’exploitation.

Copies multiples

L’outil SQLIOSim prend en charge les tests au niveau de plusieurs fichiers et les tests au niveau de plusieurs utilisateurs. L’outil SQLIOSim ne nécessite pas plusieurs appels. Vous pouvez exécuter plusieurs copies de l’outil SQLIOSim si les conditions suivantes sont remplies :

  • Toutes les copies référencent des fichiers de test uniques pour chaque instance de l’outil.
  • 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 de mémoire insuffisante, réduisez le nombre de copies d’outils en cours d’exécution.