ScatterGather (SYSTEM)
Dieser Test überprüft die E/A-Zuverlässigkeitsszenarien des Dateisystems, hauptsächlich asynchron. Dabei werden die ReadFile/WriteFile/ReadFileScatter/WriteFileGather-APIs verwendet. HLK testet vordefinierte automatisierte Regressionsvariationen.
Testdetails
Spezifikationen |
|
Plattformen |
|
Unterstützte Versionen |
|
Voraussichtliche Laufzeit (in Minuten) | 240 |
Kategorie | Szenario |
Zeitüberschreitung (in Minuten) | 14400 |
Neustart erforderlich | false |
Erfordert eine spezielle Konfiguration | false |
Typ | automatic |
Zusätzliche Dokumentation
Tests in diesem Funktionsbereich enthalten möglicherweise zusätzliche Dokumentation, einschließlich Informationen zu Voraussetzungen, Einrichtung und Fehlerbehebung, die in den folgenden Themen zu finden sind:
Ausführen des Tests
Bevor Sie den Test ausführen, schließen Sie die Testeinrichtung wie in den Testanforderungen beschrieben ab: Testvoraussetzungen für WDTF-Systemgrundlagen.
Führt gleichzeitig E/A (sowohl Schreib- als auch Lesevorgänge) per Multithread-Methode aus, indem E/A-Abschlussports verwendet werden, um den E/A-Prozess abzuschließen. Zunächst weden das EOF der Datei festgelegt und die E/A-Threads geplant. Während die Datei geschrieben wird, erfolgt eine Onlineüberprüfung, bei der Null oder ein berechneter Offset-Wert erwartet wird. Nachdem die gesamte Datei geschrieben wurde, erfolgt die vollständige Überprüfung der Datei. Der Test schlägt fehl, wenn Null oder ein unerwarteter Wert aufgetreten ist.
Problembehandlung
Informationen zur allgemeinen Problembehandlung bei HLK-Testfehlern finden Sie unter Problembehandlung bei Windows HLK-Testfehlern.
Informationen zur Problembehandlung finden Sie unter Problembehandlung beim Testen von Systemgrundlagen.
Dieser Test gibt „Pass“ oder „Fail“ zurück. Überprüfen Sie die Testdetails im Testprotokoll von Windows Hardware Lab Kit (Windows HLK) Studio.
Weitere Informationen
Unterstützte Testmodi:
Wir gehen davon aus, dass die meisten Benutzer vordefinierte Regressionsvariationen verwenden.
Standard, Regression (vordefinierte Variationen) und Stress geben bestimmte Arten von Fehlern an, z. B. virtuelle Alloc-Wiederholungen usw. Für den Standardmodus gibt es ein Flagsauto-Flag, das die meisten Parameter verwaltet, wenn der Benutzer die Parameter nicht manuell angeben möchte. Zusätzlich wird die Timer-Funktionalität mit Standard- und Stressmodi unterstützt. Für den Regressionsmodus gibt es eine vordefinierte Timer-Variation.
Unterstützte Lese-/Schreibmodi:
Lese-/Schreibmodus:
RW( Read, Write)
RWG( Read, Write Gather)
RSW( Read Scatter, Write)
RSWG( Read Scatter, Write Gather)
RRW( Random Read, Write)
RRWG( Random Read, Write Gather)
RWR( Read, Random Write)
RSWR( Read Scatter, Random Write)
RRWR (Random Read, Random Write – ca. 50 % Scatter/Gather) –> Standard
RRWR7 (Random Read, Random Write – ca. 30 % Scatter/Gather)
RRWR3 (Random Read, Random Write – ca. 70 % Scatter/Gather
Darüber hinaus unterstützt der Test Reverse Read and Reverse Write.
E/A-Drosselungsmechanismus:
Unterstützt den oberen&unteren Grenzwert für kontrollierte EA-Anforderungen. Der Umgehungsmodus ist auch möglich, wodurch das System im Wesentlichen gesprengt wird.
Datenmuster:
Einfacher, Offset-berechneter alphabetischer Wert. Bei den Timer-Variationen kann es jedoch Unvollständigkeiten geben.
Datenvalidierungsmodi:
Unterstützt sowohl Online-Überprüfungen (gleichzeitige Überprüfung zusammen mit Schreibvorgängen), vollständige Prüfungen (nach Abschluss aller Schreibvorgänge) als auch Offline-Überprüfungen. Alle diese Modi können deaktiviert/aktiviert werden. Wenn die Online-Überprüfung deaktiviert ist, werden im Wesentlichen nur Schreibvorgänge während der ersten Phase ausgeführt, nach der die vollständige Prüfung ausgeführt wird.
Der Unterschied zwischen der Online-Überprüfung und der vollständigen Prüfung besteht darin, dass die vollständige Überprüfung erst ausgeführt wird, nachdem alle Schreibvorgänge von einem einzelnen Thread abgeschlossen wurden. Im Gegensatz dazu wird die Online-Überprüfung während der Schreibvorgänge gleichzeitig ausgeführt. Dabei wird der Wert Null oder ein berechneter Offset-Wert erwartet, während bei der vollständigen Prüfung nur berechnete Offset-Werte erwartet werden.
Befehlssyntax
Befehl | Beschreibung |
---|---|
ScatterMultiThread.exe -default -rwmode:rw -iomode:sync |
Führt eine E/A vom Typ Read Write im Synchronisierungsmodus mit Standarddateigröße aus. |
ScatterMultiThread.exe -default -rwmode:RSWG -RR -RER:2 -TESTPATH:d:\Scatter -FILESIZE:500m |
Führt einen Scatter-Gather-Vorgang, 500m-Datei, unter dem Testpfad aus, der mit zufälligem Offset und umgekehrtem Lesevorgang angegeben ist. |
ScatterMultiThread.exe -default -rwmode:RRWR -FILESIZE:2g -IODIFFUPPERTHRESHOLD:500 -IODIFFLOWERTHRESHOLD:100 |
Führt eine E/A in Form eines 50-prozentigen Scatter-Gather-Vorgangs, 2-GB-Datei, mit oberem und unterem Schwellenwert für die E/A aus. |
ScatterMultiThread.exe -regression -regression:6 |
Führt eine vordefinierte Regressionsvariation 6 aus. |
ScatterMultiThread.exe -stress -RWMODE:rrwr -THREADS:2 -BS:100k |
Führt einen Scatter-Gather-Vorgang im Stressmodus mit 2 Reader- und 2 Writer-Threads und einer E/A-Blockgröße von 100k/ aus. |
ScatterMultiThread.exe -default -FILE:timer.dat -timer:19s -FILESIZE:5g -ONLINEVERIFY:FALSE |
Timer-Modus ReadWrite mit ungepuffterter E/A und kein OnlineVerify-Modus. |
ScatterMultiThread.exe -default -OFFLINEVERIFY -FILE:timer.dat -FULLCHECK:FALSE -ALLOWZERO4VERIFY |
Offline-Überprüfung der obigen Variation mit deaktivierter vollständiger Prüfung und AllowZero4Verify-Modus. |
Befehlssyntax
Befehlsoption | Beschreibung |
---|---|
ScatterMultiThread.exe |
Die Befehlszeilenoptionen für den Test sind unten aufgeführt. |
-help or /? |
Zeigt die Hilfe an. |
-default |
Führt die Standardvariation mit Testparametern aus der Befehlszeile aus. |
-stress |
Stressmodus. Wiederholt die Speicherzuweisungsfehler usw. |
-regression |
Regressionsmodus. Führt den vordefinierten Regressionsmodus aus. |
-testpath |
Vollständiger Pfad zur Datei. Standardwert: CWD |
-file |
Datei im Testpfad oder vollständigen Pfad zur Datei. Standardwert: Scatter.dat |
-filesize |
Dateigröße in Bytes. Sie können auch k, m, g oder t anfügen. Standardwert: 1m |
-threads |
Anzahl der exklusiven Reader- und Writer-Threads. Standardwert: 2 |
-completionthreads |
Die Anzahl Abschluss-Threads. Standardwert: Anzahl Prozessoren mal zwei |
-rwmode |
Lese-/Schreibmodus:
|
-iomode |
synchron oder asynchron Standardwert: asynchron |
-flagsauto |
TRUE oder FALSE Standardwert: TRUE
Hinweis
Bestimmte Datei-Flags werden automatisch basierend auf den Situationen verwaltet. |
-ffnb |
TRUE oder FALSE Standardwert: FALSE
Hinweis
FILE_FLAG_NO_BUFFERING wird automatisch in bestimmten Situationen wie Scatter/Gather aktiviert. |
-ffss |
TRUE oder FALSE Standardwert: FALSE
Hinweis
FILE_FLAG_SEQUENTIAL_SCAN wird automatisch in bestimmten Situationen aktiviert, beispielsweise bei einer serialisierten E/A. |
-ffra |
TRUE oder FALSE Standardwert: FALSE
Hinweis
FILE_FLAG_RANDOM_ACCESS wird automatisch in bestimmten Situationen aktiviert, beispielsweise bei einer zufälligen E/A. |
-ffwt |
TRUE oder FALSE Standardwert: FALSE
Hinweis
FILE_FLAG_WRITE_THROUGH wird nicht automatisch aktiviert, sofern nicht manuell angegeben. Deaktivieren Sie das FLAGSAUTO-Flag für die unabhängige Verwaltung von Datei-Flags und Attributen. Das FLAGSAUTO-Verhalten ändert sich in Abhängigkeit von anderen Parametern, z. B. freigegebenem Datei-Handle oder umgekehrter E/A usw. Die FFSS- und FFRA-Flags haben keine Auswirkung, wenn das Dateisystem keine zwischengespeicherte E/A unterstützt und FFNB vom Dateisystem oder gemäß Angabe nicht unterstützt wird. FFSS- und FFRA-Flags schließen sich gegenseitig aus und können nicht kombiniert werden, da sie sich verfehlen. |
.bs |
Blockgröße in Bytes. Sie können k, m, g, t anfügen. Standard: 64k |
-bypass |
Umgeht die Wartezeit für den E/A-Schwellenwert. Dies kann entweder TRUE oder FALSE sein. Standardwert: FALSE |
-nsegments |
Die Segment-Arraygröße für Scatter/Gather. Standardwert: 16
Hinweis
Diese Option wird automatisch in bestimmten Situationen für Scatter/Gather korrigiert. |
-totalsleep |
Die Gesamtzeit im Ruhezustand für fehlgeschlagene virtuelle Zuordnungs- oder E/A-Schwellenwertszenarien. Standardwert: 30 Minuten |
-sleepint |
Die Ruhezustandsintervallschleife für fehlgeschlagene virtuelle Zuordnungsszenarien Standardwert: 2 Minuten |
-iodifferupperthreshold |
Der obere Schwellenwert für die Ausgabe von E/A-Anforderungen. Standardwert: 1000 |
-iodifflowerthreshold |
Der untere Schwellenwert zum Fortsetzen von E/A-Anforderungen, nachdem E/A-Differenz diese Zahl unterschreitet. Standardwert: 100
Hinweis
Diese Option schließt sich mit dem Umgehungsmodus gegenseitig aus und wird ignoriert, wenn der Umgehungsmodus aktiviert ist. |
-wfw |
Das Writer(WFW)-Flag wartet darauf, dass WriterThreads ausgeführt werden, bevor ein Lesevorgang erfolgt. Diese Option kann entweder true oder false sein. Standardwert: FALSE |
-rr |
Durch die Option für zufälliges Offset-Lesen (RR) werden ReaderThreads bei einem zufälligen Offset gestartet. Dieser Wert kann true oder false sein. Standardwert: TRUE |
.rw |
Durch die Option für zufälliges Offset-Schreiben (RW) werden WriterThreads bei zufälligen Offsets gestartet. Dieser Wert kann true oder false sein. Standardwert: FALSE |
-rer |
Der umgekehrte Lesevorgang vom Anfang des Offsets. Dieser Wert kann entweder 0, 1 oder 2 sein. Standardwert: 2 |
-rew |
Der umgekehrte Schreibvorgang vom Anfang des Offsets. Dieser Wert kann entweder 0, 1 oder 2 sein. Standardwert: 0
Hinweis
Für RER- und REW-Flags bedeutet 0 keine Umkehrung, 1 bedeutet direkte Umkehrung, und 2 bedeutet zufällige Umkehrung (wird nicht immer angewendet). Bei RER- und REW-Flags kann die vollständige Datei-E/A nicht abgeschlossen sein, und die gemeldeten Statistiken und Ergebnisse sind möglicherweise ungenau. |
-timer |
Timermodus (in Sekunden). Sie können s, m, h anfügen. Standardwert: 0 Führt E/A aus, bis der Timer abgelaufen ist. |
-timerloop |
Das Timer-Schleifenintervall (in Sekunden). Sie können s, m, h anfügen. Standardwert: identisch mit der Timeroption
Hinweis
Die Timeroption ist nur für die Ausgabe von Anforderungen vorgesehen, und die Ausführung läuft weiter (für die Ausführung kann kein Timer angewendet werden). |
-onlineverify |
Überprüft den Inhalt der Datei, nachdem Schreibanforderungen im Onlinemodus ausgegeben wurden. Standardwert: TRUE |
-offlineverify |
Überprüft den Inhalt der Datei im Offlinemodus, indem der Test erneut ausgeführt wird. Standardwert: FALSE |
-allowzero4verify |
Lässt zu, dass eine Null Teil der vollständigen Überprüfung ist (OFFLINE oder ONLINE). Standardwert: FALSE |
-onlyzero4verify |
Lässt zu, dass eine Null Teil der vollständigen Überprüfung ist (OFFLINE oder ONLINE). Standardwert: FALSE |
-sharedfh |
Ermöglicht die Verwendung desselben Dateihandles für alle E/A-Dateien. Standardwert: FALSE |
-regression |
Die Regressionsvariation. Dieser Wert kann entweder - 1, - 10 oder 1001 sein (bezieht sich auf alle Variationen). Standardwert: 0 (keine Regression) |
-displayprogress |
Zeigt den E/A-Fortschritt an (in Sekunden). Sie können s, m, h anfügen. Standardwert: 2m |
-fullcheck |
Vollständige Überprüfung der Daten nach der Online- oder Offlineüberprüfung. Standardwert: true |
-dbgcheck |
Unterbricht einen Kerneldebugger, der fehlschlägt. Dieser Wert kann true oder false sein. Standardwert: true |
-toleratesurpriseremove |
Unterbricht keinen Kerneldebugger bei einem SurpriseRemove-Fehler. Dieser Wert kann true oder false sein. Standardwert: False |
-tolerrepair |
Unterbricht keinen Kerneldebugger, wenn ein Reparaturfehler auftritt. Dieser Wert kann true oder false sein. Standardwert: False |
-toleratefailio |
Unterbricht keinen Kerneldebugger bei einem FailIO-Fehler. Dieser Wert kann true oder false sein. Standardwert: False |
-exitonerror |
Beendet den Vorgang bei einem Fehler. Dieser Wert kann true oder false sein. Standardwert: False |
Hinweis
Geben Sie /? ein, um Befehlszeilenhilfe für diesen Test zu erhalten.
Dateiliste
Datei | Standort |
---|---|
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\ |
Parameter
Parametername | Parameterbeschreibung |
---|---|
LLU_NetAccessOnly | |
TEST_PATH |