Partager via


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
  • System.Fundamentals.StorageAndBoot.BootPerformance
Plateformes
  • Windows 10, éditions clientes (x86)
  • Windows 10, éditions clientes (x64)
Versions prises en charge
  • Windows 10
  • Windows 10, version 1511
  • Windows 10, version 1607
  • Windows 10 version 1703
  • Windows 10, version 1709
  • Windows 10 version 1803
  • Windows 10, version 1809
  • Windows 10 version 1903
  • Prochaine mise à jour de Windows 10
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 :

  • RW( Read, Write)

  • RWG( Read, Write Gather)

  • RSW( Read Scatter, Write)

  • RSWG( Read Scatter, Write Gather)

  • RRW( Lecture aléatoire, écriture)

  • RRWG( Lecture aléatoire, collecte d’écritures)

  • RWR( Lecture, écriture aléatoire)

  • RSWR( Read Scatter, Random Write)

  • RRWR( Lecture aléatoire, écriture aléatoire - environ 50 % de points/collecte) -> valeur par défaut

  • RRWR7( Lecture aléatoire, écriture aléatoire - environ 30 % de points/collecte)

  • RRWR3( Lecture aléatoire, écriture aléatoire - environ 70 % de points/collecte

-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