ScatterGather (SYSTEM)
Questo test convalida gli scenari di affidabilità di I/O del file system, principalmente in modo asincrono, usando le API ReadFile/WriteFileScatter/WriteFileGather. I test HLK esercitano variazioni di regressione automatizzate predefinite.
Dettagli del test
Specifiche |
|
Piattaforme |
|
Versioni supportate |
|
Tempo di esecuzione previsto (in minuti) | 240 |
Categoria | Scenario |
Timeout (in minuti) | 14400 |
Richiede il riavvio | false |
Richiede una configurazione speciale | false |
Type | automatic |
Documentazione aggiuntiva
I test in questa area di funzionalità potrebbero avere documentazione aggiuntiva, inclusi prerequisiti, configurazione e informazioni sulla risoluzione dei problemi, disponibili negli argomenti seguenti:
Esecuzione del test
Prima di eseguire il test, completare l'installazione dei test come descritto nei requisiti di test: Prerequisiti di test fondamentali del sistema WDTF.
Esegue simultaneamente operazioni di I/O (sia di scrittura che di lettura) in modo multithreading usando le porte di completamento di I/O per completare l'I/O. Inizierà impostando inizialmente l'EOF del file e pianificando i thread di I/O. Mentre il file è in fase di scrittura, esegue la verifica online in cui prevede zero o offset valore calcolato. Dopo aver scritto l'intero file, esegue la verifica completa del file e avrà esito negativo se viene rilevato zero o un valore imprevisto.
Risoluzione dei problemi
Per la risoluzione dei problemi generici degli errori di test HLK, vedere Risoluzione dei problemi relativi agli errori di test di Windows HLK.
Per informazioni sulla risoluzione dei problemi, vedere Risoluzione dei problemi relativi ai test fondamentali del sistema.
Questo test restituisce Pass o Fail. Per esaminare i dettagli dei test, esaminare il log di test da Windows Hardware Lab Kit (Windows HLK) Studio.
Altre informazioni
Modalità di test supportate:
La maggior parte degli utenti prevede l'uso di varianti di regressione predefinite.
Default, Regression (varianti predefinite) e stress indicano determinati tipi di errori, ad esempio tentativi di allocazione virtuale e così via. Per la modalità predefinita, è presente un flag flagsauto che gestisce la maggior parte dei parametri se l'utente non vuole fornire manualmente i parametri. Inoltre , la funzionalità timer è supportata con le modalità predefinite e di stress. Per la modalità di regressione, è presente una variante del timer predefinita.
Modalità di lettura/scrittura supportate:
Modalità lettura/scrittura:
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( Lettura casuale, Scrittura casuale - Circa il 50% a dispersione/raccolta) -> Impostazione predefinita
RRWR7( Lettura casuale, Scrittura casuale - Circa il 30% a dispersione/raccolta)
RRWR3( Lettura casuale, Scrittura casuale - Circa il 70% a dispersione/raccolta
Inoltre, il test supporta la lettura inversa e la scrittura inversa.
Meccanismo di limitazione delle richieste di I/O:
Supporta la soglia superiore e inferiore per le richieste di I/O controllate. La modalità bypass è anche possibile che esegue essenzialmente l'esplosione del sistema con I/O.
Modello di dati:
Valore alfabetico calcolato con offset semplice. Per la variazione del timer, tuttavia, possono esserci fori.
Modalità di convalida dei dati:
Supporta sia online (convalida simultanea insieme alle scritture), controllo completo (dopo il completamento di tutte le modalità di scrittura) sia modalità di verifica offline. Tutte queste modalità possono essere disattivate/attivate. Se la verifica online è disattivata, essenzialmente solo le scritture vengono eseguite durante la fase iniziale dopo la quale verrà eseguito il controllo completo.
La differenza tra Online e Controllo completo è che il controllo completo viene eseguito solo dopo che tutte le scritture vengono completate da un singolo thread mentre la verifica online viene eseguita simultaneamente durante le scritture e durante la quale prevede zero o valore calcolato offset, a differenza del controllo completo, dove solo tranne il valore calcolato offset.
Utilizzo dei comandi
Comando | Descrizione |
---|---|
ScatterMultiThread.exe -default -rwmode:rw -iomode:sync |
Eseguire operazioni di I/O di lettura scrittura in modalità di sincronizzazione con dimensioni predefinite del file. |
ScatterMultiThread.exe -default -rwmode:RSWG -RR -RER:2 -TESTPATH:d:\Scatter -FILESIZE:500m |
Eseguire full Scatter Gather, file 500m, nel percorso di test specificato con offset casuale e lettura inversa. |
ScatterMultiThread.exe -default -rwmode:RRWR -FILESIZE:2g -IODIFFUPPERTHRESHOLD:500 -IODIFFLOWERTHRESHOLD:100 |
Eseguire il 50% del file di raccolta di I/O da 2 GB con soglia superiore e inferiore |
ScatterMultiThread.exe -regression -regression:6 |
Eseguire la variante di regressione predefinita 6. |
ScatterMultiThread.exe -stress -RWMODE:rrwr -THREADS:2 -BS:100k |
Eseguire la raccolta a dispersione in modalità stress con 2 thread di lettura e 2 writer con dimensioni del blocco di I/O pari a 100.000// |
ScatterMultiThread.exe -default -FILE:timer.dat -timer:19s -FILESIZE:5g -ONLINEVERIFY:FAL edizione Standard |
Modalità timer ReadWrite I/O non memorizzato nel buffer e nessuna modalità OnlineVerify. |
ScatterMultiThread.exe -default -OFFLINEVERIFY -FILE:timer.dat -FULLCHECK:FAL edizione Standard -ALLOWZERO4VERIFY |
Verifica offline della variante precedente con controllo completo disabilitato e modalità AllowZero4Verify. |
Sintassi dei comandi
Opzione di comando | Descrizione |
---|---|
ScatterMultiThread.exe |
Di seguito sono elencate le opzioni della riga di comando per il test. |
-help o /? |
Visualizza la Guida. |
-Predefinito |
Esegue la variante predefinita con parametri di test dalla riga di comando. |
-Stress |
Modalità stress. Riprovare gli errori di allocazione della memoria e così via. |
-Regressione |
Modalità di regressione. Esegue la modalità di regressione predefinita. |
-testpath |
Percorso completo del file. Valore predefinito: CWD |
-File |
File nel percorso di test o nel percorso completo del file. Valore predefinito: Scatter.dat |
-Dimensione |
Dimensioni del file in byte. È anche possibile aggiungere k, m, g o t. Valore predefinito: 1m |
-Discussioni |
Numero di thread di lettura e scrittura esclusivi. Valore predefinito: 2 |
-completionthreads |
Numero di thread di completamento. Valore predefinito: due volte il numero di processori |
-rwmode |
Modalità di lettura/scrittura:
|
-iomode |
sincronizzazione o asincrona Valore predefinito: asincrono |
-flagsauto |
TRUE o FALSE Valore predefinito: TRUE
Nota
Alcuni flag di file vengono gestiti automaticamente in base alle situazioni |
-ffnb |
TRUE o FALSE Valore predefinito: FAL edizione Standard
Nota
FILE_FLAG_NO_BUFFERING verrà attivato automaticamente in determinate situazioni, ad esempio Scatter/Gather. |
-ffss |
TRUE o FALSE Valore predefinito: FAL edizione Standard
Nota
FILE_FLAG_edizione StandardQUENTIAL_SCAN verrà attivato automaticamente in determinate situazioni, ad esempio I/O serializzate. |
-ffra |
TRUE o FALSE Valore predefinito: FAL edizione Standard
Nota
FILE_FLAG_RANDOM_ACCESS verrà attivato automaticamente in determinate situazioni, ad esempio operazioni di I/O casuali. |
-ffwt |
TRUE o FALSE Valore predefinito: FAL edizione Standard
Nota
FILE_FLAG_WRITE_THROUGH non verrà attivato automaticamente, a meno che non venga specificato manualmente. Disabilitare il flag FLAGSAUTO per la gestione indipendente dei flag di file e degli attributi. Il comportamento FLAGSAUTO cambierà a seconda di altri parametri, ad esempio l'handle di file condiviso o l'I/O inverso e così via. I flag FFSS e FFRA non hanno alcun effetto se il file system non supporta le operazioni di I/O memorizzate nella cache e FFNB non è supportato dal file system o specificato. I flag FFSS e FFRA si escludono a vicenda e non possono essere combinati come se stessi. |
-bs |
Dimensioni blocco in byte. È possibile aggiungere k, m, g, t. Impostazione predefinita: 64k |
-Bypass |
Ignora l'attesa della soglia di I/O. Può trattarsi di TRUE o FAL edizione Standard. Valore predefinito: FAL edizione Standard |
-nsegments |
Dimensioni della matrice di segmenti per Scatter/Gather. Valore predefinito: 16
Nota
Questa opzione viene corretta automaticamente in determinate situazioni per Scatter/Gather/ |
-totalsleep |
Tempo totale di sospensione per scenari di allocazione virtuale non riuscita o soglia di I/O. Valore predefinito: 30 minuti |
-sleepint |
Intervallo di sospensione del ciclo per scenari di allocazione virtuale non riusciti Valore predefinito: 2 minuti |
-iodifferupperthreshold |
Soglia superiore per l'emissione di richieste di I/O. Valore predefinito: 1000 |
-iodifflowerthreshold |
La soglia inferiore per riprendere le operazioni di I/O richieste dopo la diff di I/O scende al di sotto di questo numero. Valore predefinito: 100
Nota
Questa opzione si escludono a vicenda con la modalità bypass e viene ignorata se la modalità bypass è attivata. |
-Wfw |
Il flag writer(WFW) attende che WriterThreads venga eseguito prima che si verifichi qualsiasi lettura. Questa opzione può essere true o false. Valore predefinito: FAL edizione Standard |
-Rr |
L'opzione RR (Random Offset Read) rende ReaderThreads inizia in corrispondenza di un offset casuale. Questo valore può essere true o false. Valore predefinito: TRUE |
-Rw |
L'opzione di scrittura offset casuale (RW) rende WriterThreads inizia in corrispondenza dell'offset casuale. Questo valore può essere true di false. Valore predefinito: FAL edizione Standard |
-Rer |
Lettura inversa dall'offset iniziale. Questo valore può essere 0, 1 o 2. Valore predefinito: 2 |
-Rew |
Scrittura inversa dall'offset iniziale. Questo valore può essere 0, 1 o 2. Valore predefinito: 0
Nota
Per i flag RER e REW, 0 significa nessuna inversione, 1 significa inversione retta e 2 significa inversione casuale (non sempre applicata). Per i flag RER e REW, l'I/O completo del file potrebbe non essere completo e le statistiche e i risultati segnalati potrebbero non essere accurati. |
-Timer |
Modalità timer (in secondi). È possibile aggiungere s, m, h. Valore predefinito: 0 Questa operazione esegue operazioni di I/O fino alla scadenza del timer. |
-timerloop |
Intervallo del ciclo timer (in secondi). È possibile aggiungere s, m, h. Valore predefinito: uguale all'opzione timer
Nota
L'opzione timer è solo per l'emissione di richieste e il completamento continuerà a essere eseguito (non è applicabile alcun timer per il completamento). |
-onlineverify |
Verifica il contenuto del file dopo l'emissione di richieste di scrittura in modalità online. Valore predefinito: TRUE |
-offlineverify |
Verifica il contenuto del file in modalità offline eseguendo nuovamente il test. Valore predefinito: FAL edizione Standard |
-allowzero4verify |
Consente a zero di far parte della verifica completa (OFFLINE o ONLINE). Valore predefinito: FAL edizione Standard |
-onlyzero4verify |
Consente a zero di far parte della verifica completa (OFFLINE o ONLINE). Valore predefinito: FAL edizione Standard |
-sharedfh |
Consente di usare lo stesso handle di file per tutte le operazioni di I/O. Valore predefinito: FAL edizione Standard |
-Regressione |
Variazione della regressione. Questo valore può essere - 1 - 10 o 1001(fa riferimento a tutte le varianti) Valore predefinito: 0 (nessuna regressione) |
-displayprogress |
Visualizzare lo stato di I/O (in secondi), è possibile aggiungere s, m, h, Valore predefinito: 2m |
-fullcheck |
Verifica completa dei dati dopo la verifica online o offline. Valore predefinito: vero |
-dbgcheck |
Si interrompe in un debugger del kernel in caso di errore. Questo valore può essere true o false. Valore predefinito: vero |
-tolleraresurpriseremove |
Non eseguire l'interruzione in un debugger del kernel in un errore SurpriseRemove. Questo valore può essere true o false. Valore predefinito: false |
-tollerarerepair |
Non eseguire l'interruzione in un debugger del kernel in caso di errore di ripristino. Questo valore può essere true o false. Valore predefinito: false |
-tollerafailio |
Non eseguire l'interruzione in un debugger del kernel in caso di errore FailIO. Questo valore può essere true o false. Valore predefinito: false |
-exitonerror |
Uscire in caso di errore. Questo valore può essere true o false. Valore predefinito: False |
Nota
Per la Guida della riga di comando per questo test, digitare /?.
Elenco file
file | Ufficio |
---|---|
ScatterMultiThread.exe |
<[testbinroot]>\NTTest\BA edizione Standard TEST\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\ |
Parametri
Nome parametro | Descrizione del parametro |
---|---|
LLU_NetAccessOnly | |
TEST_PATH |