ScatterGather (SYSTEM)
Ce test valide les scénarios de fiabilité des E/S du système de fichiers, principalement de manière asynchrone, en utilisant les API ReadFile/WriteFile/ReadFileScatter/WriteFileGather. Les tests HLK effectuent des exercices prédéfinis de régression automatisée.
Détails du test
Spécifications |
|
Plateformes |
|
Versions prises en charge |
|
Durée d’exécution attendue (en minutes) | 240 |
Catégorie | Scénario |
Délai d’expiration (en minutes) | 14400 |
Nécessite un redémarrage | false |
Nécessite une configuration spéciale | false |
Type | automatique |
Documentation supplémentaire
Les tests de cette zone de fonctionnalité peuvent avoir une documentation supplémentaire, y compris les conditions préalables, l’installation et les informations de résolution des problèmes, que vous trouverez dans les rubriques suivantes :
Exécution du test
Avant d’exécuter le test, effectuez la configuration du test comme décrit dans les conditions requises pour le test : WDTF System Fundamentals Testing Prerequisites.
Effectue simultanément des E/S (écritures et lectures) de manière multithread en utilisant des ports d’achèvement d’E/S pour terminer les E/S. Il commence par définir initialement l’EOF du fichier et planifier les threads d’E/S. Pendant l’écriture du fichier, il effectue une vérification en ligne où il attend une valeur calculée nulle ou décalée. Une fois le fichier entier écrit, il effectue une vérification complète du fichier et échoue au test si zéro ou une valeur inattendue est rencontrée.
Dépannage
Pour la résolution des problèmes génériques des échecs de test HLK, consultez Résolution des échecs de test HLK Windows.
Pour plus d’informations sur la résolution des problèmes, consultez Résolution des problèmes liés aux tests de base du système.
Ce test retourne La réussite ou l’échec. Pour passer en revue les détails du test, passez en revue le journal des tests à partir du Kit de laboratoire matériel Windows (Windows HLK) Studio.
Plus d’informations
Modes de test pris en charge :
Nous nous attendons à ce que la plupart des utilisateurs utilisent des variantes de régression prédéfinies.
Par défaut, Régression (variantes prédéfinies) et stress indiquent certains types d’échecs, tels que les nouvelles tentatives d’allocation virtuelle, etc. Pour le mode par défaut, il existe un indicateur flagsauto qui gère la plupart des paramètres si l’utilisateur ne souhaite pas fournir les paramètres manuellement. En outre, la fonctionnalité de minuteur est prise en charge avec les modes par défaut et stress. Pour le mode de régression, il existe une variation de minuteur prédéfinie.
Modes de lecture/écriture pris en charge :
Mode lecture/écriture :
RW( Read, Write)
RWG( Read, Write Gather)
RSW( Read Scatter, Write)
RSWG( Read Scatter, Write Gather)
RRW( Lecture aléatoire, écriture)
RRWG( Random Read, Write Gather)
RWR( Read, Random Write)
RSWR( Read Scatter, Random Write)
RRWR( Random Read, Random Write - Approx. 50% Scatter/Gather) -> Par défaut
RRWR7( Lecture aléatoire, Écriture aléatoire - Env. 30% Scatter/Gather)
RRWR3( Lecture aléatoire, Écriture aléatoire - Env. 70% Scatter/Collect
En outre, le test prend en charge la lecture inversée et l’écriture inversée.
Mécanisme de limitation des E/S :
Prend en charge le seuil inférieur supérieur & pour les demandes d’E/S contrôlées. Le mode de contournement est également possible, ce qui déclenche essentiellement le système avec des E/S.
Modèle de données :
Valeur alphabétique calculée de décalage simple. Pour la variation du minuteur, il peut y avoir des trous cependant.
Modes de validation des données :
Prend en charge à la fois les modes de vérification en ligne (validation simultanée avec écritures), de vérification complète (qui est une fois l’écriture terminée) et hors connexion. Tous ces modes peuvent être désactivés/activés. Si la vérification en ligne est désactivée, seules les écritures se produisent pendant la phase initiale après laquelle la vérification complète est effectuée.
La différence entre les case activée en ligne et les case activée complètes est que la case activée complète n’est effectuée qu’après que toutes les écritures sont effectuées par un thread unique, tandis que la vérification en ligne est effectuée simultanément pendant les écritures et pendant, ce qui représente une valeur calculée égale à zéro ou un décalage, contrairement à fullcheck où elle n’est qu’à l’exception de la valeur calculée décalée.
Utilisation des commandes
Commande | Description |
---|---|
ScatterMultiThread.exe -default -rwmode:rw -iomode:sync |
Effectuez des E/S en lecture-écriture en mode synchronisation avec la taille de fichier par défaut. |
ScatterMultiThread.exe -default -rwmode:RSWG -RR -RER:2 -TESTPATH:d:\Scatter -FILESIZE:500m |
Effectuez la collecte de points complète, fichier de 500 m, dans le chemin de test spécifié avec décalage aléatoire et lecture inversée. |
ScatterMultiThread.exe -default -rwmode:RRWR -FILESIZE:2g -IODIFFUPPERTHRESHOLD:500 -IODIFFLOWERTHRESHOLD:100 |
Effectuer un fichier d’E/S de 2 Go de collecte de points de 50 % avec un seuil d’E/S supérieur et inférieur |
ScatterMultiThread.exe -régression -régression:6 |
Effectuer une variation de régression prédéfinie 6. |
ScatterMultiThread.exe -stress -RWMODE:rrwr -THREADS:2 -BS:100k |
Effectuer la collecte de points en mode stress avec 2 threads de lecteur et 2 threads d’écriture avec une taille de bloc d’E/S de 100 000/ |
ScatterMultiThread.exe -default -FILE:timer.dat -timer:19s -FILESIZE:5g -ONLINEVERIFY:FALSE |
Mode minuteur ReadWrite Nonbuffered E/S et aucun mode OnlineVerify. |
ScatterMultiThread.exe -default -OFFLINEVERIFY -FILE:timer.dat -FULLCHECK:FALSE -ALLOWZERO4VERIFY |
Vérification hors connexion de la variante ci-dessus avec la case à cocher complète désactivée et le mode AllowZero4Verify. |
Syntaxe de commande
Option de commande | Description |
---|---|
ScatterMultiThread.exe |
Les options de ligne de commande pour le test sont répertoriées ci-dessous. |
-help ou /? |
Affiche de l’aide. |
-Par défaut |
Exécute la variation par défaut avec des paramètres de test à partir de la ligne de commande. |
-Stress |
Mode stress. Réessayez les échecs d’allocation de mémoire, etc. |
-Régression |
Mode régression. Exécute le mode de régression prédéfini. |
-testpath |
Chemin d’accès complet au fichier. Valeur par défaut : CWD |
-file |
Fichier dans le chemin de test ou chemin d’accès complet au fichier. Valeur par défaut : Scatter.dat |
-Taille |
Taille du fichier en octets. Vous pouvez également ajouter k, m, g ou t. Valeur par défaut : 1m |
-Fils |
Nombre de threads de lecture et d’écriture exclusifs. Valeur par défaut : 2 |
-completionthreads |
Nombre de threads d’achèvement. Valeur par défaut : deux fois le nombre de processeurs |
-rwmode |
Mode lecture/écriture :
|
-iomode |
synchronisation ou asynchrone Valeur par défaut : asynchrone |
-flagsauto |
TRUE ou FALSE Valeur par défaut : TRUE
Remarque
Certains indicateurs de fichiers sont gérés automatiquement en fonction des situations |
-ffnb |
TRUE ou FALSE Valeur par défaut : FALSE
Remarque
FILE_FLAG_NO_BUFFERING sera automatiquement activé dans certaines situations telles que Scatter/Gather. |
-Ffs |
TRUE ou FALSE Valeur par défaut : FALSE
Remarque
FILE_FLAG_SEQUENTIAL_SCAN sera automatiquement activé dans certaines situations comme les E/S sérialisées. |
-ffra |
TRUE ou FALSE Valeur par défaut : FALSE
Remarque
FILE_FLAG_RANDOM_ACCESS sera automatiquement activé dans certaines situations telles que les E/S aléatoires. |
-ffwt |
TRUE ou FALSE Valeur par défaut : FALSE
Remarque
FILE_FLAG_WRITE_THROUGH ne sera pas activé automatiquement, sauf indication manuelle. Désactivez l’indicateur FLAGSAUTO pour une gestion indépendante des indicateurs de fichier et des attributs. Le comportement de FLAGSAUTO change en fonction d’autres paramètres tels que le handle de fichier partagé ou les E/S inversées, etc. Les indicateurs FFSS et FFRA n’ont aucun effet si le système de fichiers ne prend pas en charge les E/S mises en cache et si FFNB n’est pas pris en charge par le système de fichiers ou spécifié. Les indicateurs FFSS et FFRA s’excluent mutuellement et ne peuvent pas être combinés, car ils s’autodébattent. |
-Bs |
Taille du bloc en octets. Vous pouvez ajouter k, m, g, t. Valeur par défaut : 64 000 |
-Contourner |
Contourne l’attente du seuil d’E/S. Cela peut être TRUE ou FALSE. Valeur par défaut : FALSE |
-nsegments |
Taille du tableau de segments pour Scatter/Gather. Valeur par défaut : 16
Remarque
Cette option est automatiquement corrigée dans certaines situations pour Scatter/Gather/ |
-totalsleep |
Temps de veille total pour les scénarios d’échec d’allocation virtuelle ou de seuil d’E/S. Valeur par défaut : 30 minutes |
-sleepint |
Intervalle de mise en veille de boucle pour les scénarios d’allocation virtuelle ayant échoué Valeur par défaut : 2 minutes |
-iodifferupperthreshold |
Seuil supérieur pour l’émission de demandes d’E/S. Valeur par défaut : 1000 |
-iodifflowerthreshold |
Le seuil inférieur pour reprendre les E/S demandées après la diff d’E/S est inférieur à ce nombre. Valeur par défaut : 100
Remarque
Cette option s’exclue mutuellement avec le mode de contournement et est ignorée si le mode de contournement est activé. |
-wfw |
L’indicateur writer (WFW) attend que WriterThreads soit terminé avant qu’une lecture ne se produise. Cette option peut être true ou false. Valeur par défaut : FALSE |
-Rr |
L’option de lecture de décalage aléatoire (RR) permet à ReaderThreads de démarrer à un décalage aléatoire. Cette valeur peut être true ou false. Valeur par défaut : TRUE |
-Rw |
L’option écriture de décalage aléatoire (RW) permet à WriterThreads de démarrer à un décalage aléatoire. Cette valeur peut être true ou false. Valeur par défaut : FALSE |
-Rer |
Lecture inversée à partir du décalage de début. Cette valeur peut être 0, 1 ou 2. Valeur par défaut : 2 |
-Rew |
Écriture inversée à partir du décalage de départ. Cette valeur peut être 0, 1 ou 2. Valeur par défaut : 0
Remarque
Pour les indicateurs RER et REW, 0 signifie aucune inversion, 1 signifie inverse droite et 2 signifie inversion aléatoire (pas toujours appliquée). Pour les indicateurs RER et REW, les E/S de fichier complètes peuvent ne pas se terminer et les statistiques et les résultats signalés peuvent être inexacts. |
-Minuterie |
Mode minuteur (en secondes). Vous pouvez ajouter s, m, h. Valeur par défaut : 0 Cette opération effectue des E/S jusqu’à ce que le minuteur ait expiré. |
-timerloop |
Intervalle de boucle du minuteur (en secondes). Vous pouvez ajouter s, m, h. Valeur par défaut : identique à l’option du minuteur
Remarque
L’option du minuteur est uniquement destinée à l’émission de requêtes et l’exécution est toujours effectuée (aucun minuteur n’est applicable pour l’achèvement). |
-onlineverify |
Vérifie le contenu du fichier après l’émission de demandes d’écriture en mode en ligne. Valeur par défaut : TRUE |
-offlineverify |
Vérifie le contenu du fichier en mode hors connexion en réexécutant le test. Valeur par défaut : FALSE |
-allowzero4verify |
Permet à un zéro de faire partie de la vérification complète (HORS CONNEXION ou EN LIGNE). Valeur par défaut : FALSE |
-onlyzero4verify |
Permet à un zéro de faire partie de la vérification complète (HORS CONNEXION ou EN LIGNE). Valeur par défaut : FALSE |
-sharedfh |
Permet d’utiliser le même handle de fichier pour toutes les E/S. Valeur par défaut : FALSE |
-Régression |
Variation de régression. Cette valeur peut être - 1 - 10, ou 1001(fait référence à toutes les variantes) Valeur par défaut : 0 (aucune régression) |
-displayprogress |
Afficher la progression des E/S (en secondes), Vous pouvez ajouter des, m, h, Valeur par défaut : 2m |
-fullcheck |
Vérification complète des données après la vérification en ligne ou hors connexion. Valeur par défaut : true |
-dbgcheck |
S’insère dans un débogueur de noyau en cas d’échec. Cette valeur peut être true ou false. Valeur par défaut : true |
-toleratesurpriseremove |
Ne pas s’introduire dans un débogueur de noyau en cas d’échec SurpriseRemove. Cette valeur peut être true ou false. Valeur par défaut : false |
-tolérablerepair |
Ne pas s’introduire dans un débogueur de noyau en cas d’échec de réparation. Cette valeur peut être true ou false. Valeur par défaut : false |
-toleratefailio |
Ne pas s’introduire dans un débogueur de noyau en cas de défaillance FailIO. Cette valeur peut être true ou false. Valeur par défaut : false |
-exitonerror |
Quittez en cas de défaillance. Cette valeur peut être true ou false. Valeur par défaut : False |
Notes
Pour obtenir de l’aide sur la ligne de commande pour ce test, tapez /?.
Liste de fichiers
File | Emplacement |
---|---|
ScatterMultiThread.exe |
<[testbinroot]>\NTTest\BASETEST\core_file_services\NTFS\ScatterGather\ |
ntlog.dll |
<[osbinroot]>\NTTest\CommonTest\NtLog\ |
ntlogger.ini |
<[osbinroot]>\NTTest\CommonTest\NtLog\ |
stresslog.dll |
<[osbinroot]>\basetest\core_file_services\shared_libs\ |
fbslog.dll |
<[osbinroot]>\basetest\core_file_services\shared_libs\fbslog\ |
Paramètres
Nom du paramètre | Description des paramètres |
---|---|
LLU_NetAccessOnly | |
TEST_PATH |