ScatterGather (SYSTEM)
Esta prueba valida escenarios de confiabilidad de E/S del sistema de archivos, principalmente asincrónicamente, utilizando las API ReadFile/WriteFileScatter/WriteFileGather. Las pruebas de HLK realizan variaciones de regresión automatizadas predefinidas.
Detalles de las pruebas
Especificaciones |
|
Plataformas |
|
Versiones admitidas |
|
Tiempo de ejecución esperado (en minutos) | 240 |
Categoría | Escenario |
Tiempo de espera (en minutos) | 14400 |
Requiere reinicio | false |
Requiere una configuración especial | false |
Tipo | automatic |
Documentación adicional
Las pruebas de este área de características pueden tener documentación adicional, incluidos los requisitos previos, la configuración y la información de solución de problemas, que se pueden encontrar en los temas siguientes:
Ejecución de la prueba
Antes de ejecutar la prueba, complete la configuración de prueba como se describe en los requisitos de prueba: Requisitos previos de prueba de WDTF System Fundamentals.
Realiza simultáneamente E/S (escrituras y lecturas) de forma multiproceso utilizando puertos de finalización de E/S para completar la E/S. Se iniciará estableciendo inicialmente el EOF del archivo y programando los subprocesos de E/S. Mientras se escribe el archivo, realiza la comprobación en línea donde espera cero o desplazamiento del valor calculado. Una vez escrito todo el archivo, realiza una comprobación completa del archivo y producirá un error en la prueba si se encuentra cero o un valor inesperado.
Solución de problemas
Para solucionar problemas genéricos de errores de prueba de HLK, consulte Solución de problemas de errores de prueba de HLK de Windows.
Para obtener información sobre la solución de problemas, consulte Solución de problemas de pruebas básicas del sistema.
Esta prueba devuelve Pass o Fail. Para revisar los detalles de la prueba, revise el registro de pruebas de Windows Hardware Lab Kit (Windows HLK) Studio.
Más información
Modos de prueba admitidos:
Esperamos que la mayoría de los usuarios usen variaciones de regresión predefinidas.
Valor predeterminado, Regresión (variaciones predefinidas) e estrés indican determinados tipos de errores, como reintentos de asignación virtual, etc. Para el modo predeterminado, hay una marca flagsauto que administra la mayoría de los parámetros si el usuario no desea proporcionar los parámetros manualmente. Además, se admite la funcionalidad del temporizador con los modos predeterminados y de esfuerzo. Para el modo de regresión, hay una variación del temporizador predefinida.
Modos de lectura y escritura admitidos:
Modo de lectura y escritura:
RW( Lectura, Escritura)
RWG( Read, Write Gather)
RSW( Lectura de dispersión, escritura)
RSWG( Lectura de dispersión, Recopilación de escritura)
RRW( Lectura aleatoria, Escritura)
RRWG( Lectura aleatoria, Recopilación de escritura)
RWR( Read, Random Write)
RSWR( Lectura de dispersión, escritura aleatoria)
RRWR( Lectura aleatoria, Escritura aleatoria - Aprox. 50% dispersión/recopilación) -> Valor predeterminado
RRWR7( Lectura aleatoria, Escritura aleatoria - Aprox. 30% dispersión/recopilación)
RRWR3( Lectura aleatoria, Escritura aleatoria - Aprox. 70% dispersión/recopilación
Además, la prueba admite lectura inversa y escritura inversa.
Mecanismo de limitación de E/S:
Admite el umbral superior & inferior para las solicitudes de E/S controladas. El modo de omisión también es posible, lo que esencialmente dispara el sistema con E/S.
Patrón de datos:
Valor alfabético simple de desplazamiento calculado. Sin embargo, para la variación del temporizador, puede haber agujeros.
Modos de validación de datos:
Admite tanto en línea (validación simultánea junto con escrituras), comprobación completa (que es una vez completada toda la escritura) y modos de comprobación sin conexión. Todos estos modos se pueden desactivar o activar. Si la comprobación en línea está desactivada, básicamente solo se producen operaciones de escritura durante la fase inicial después de la cual se realizará la comprobación completa.
La diferencia entre la comprobación en línea y completa es que la comprobación completa solo se realiza una vez completadas todas las escrituras por un único subproceso mientras la comprobación en línea se realiza simultáneamente durante las escrituras y durante, durante la cual espera cero o el valor calculado de desplazamiento, a diferencia de la comprobación completa en la que solo se excluye el valor calculado de desplazamiento.
Uso de comandos
Comando | Descripción |
---|---|
ScatterMultiThread.exe -default -rwmode:rw -iomode:sync |
Realice la E/S de lectura en modo de sincronización con el tamaño de archivo predeterminado. |
ScatterMultiThread.exe -default -rwmode:RSWG -RR -RER:2 -TESTPATH:d:\Dispersión -FILESIZE:500m |
Realice la recopilación de dispersión completa, archivo de 500 m, en la ruta de prueba especificada con desplazamiento aleatorio y lectura inversa. |
ScatterMultiThread.exe -default -rwmode:RRWR -FILESIZE:2g -IODIFFUPPERTHRESHOLD:500 -IODIFFLOWERTHRESHOLD:100 |
Realizar un archivo de 50 % de dispersión de recopilación de E/S de 2 GB con umbral superior e inferior de E/S |
ScatterMultiThread.exe -regression -regression:6 |
Realice la variación de regresión predefinida 6. |
ScatterMultiThread.exe -stress -RWMODE:rrwr -THREADS:2 -BS:100k |
Realizar la recopilación de dispersión en modo de esfuerzo con 2 subprocesos lector y 2 de escritura con tamaño de bloque de E/S de 100 0000/ |
ScatterMultiThread.exe -default -FILE:timer.dat -timer:19s -FILESIZE:5g -ONLINEVERIFY:FALSE |
Modo de temporizador ReadWrite E/S sin búfer y sin modo OnlineVerify. |
ScatterMultiThread.exe -default -OFFLINEVERIFY -FILE:timer.dat -FULLCHECK:FALSE -ALLOWZERO4VERIFY |
Comprobación sin conexión de la variación anterior con la comprobación completa deshabilitada y el modo AllowZero4Verify. |
Sintaxis de comandos
Opción de comando | Descripción |
---|---|
ScatterMultiThread.exe |
A continuación se enumeran las opciones de la línea de comandos de la prueba. |
-help o /? |
Muestra información de ayuda. |
-Predeterminado |
Ejecuta la variación predeterminada con parámetros de prueba desde la línea de comandos. |
-Estrés |
Modo de estrés. Reintenta los errores de asignación de memoria, etc. |
-Regresión |
Modo de regresión. Ejecuta el modo de regresión predefinido. |
-testpath |
Ruta de acceso completa al archivo. Valor predeterminado: CWD |
-Archivo |
Archivo en la ruta de acceso de prueba o ruta de acceso completa al archivo. Valor predeterminado: Scatter.dat |
-Tamaño |
Tamaño del archivo en bytes. También puede anexar k, m, g o t. Valor predeterminado: 1m |
-Hilos |
Número de subprocesos de lector y escritor exclusivos. Valor predeterminado: 2 |
-completionthreads |
Número de subprocesos de finalización. Valor predeterminado: dos veces el número de procesadores |
-rwmode |
Modo de lectura y escritura:
|
-iomode |
sync o async Valor predeterminado: asincrónico |
-flagsauto |
TRUE o FALSE Valor predeterminado: TRUE
Note
Determinadas marcas de archivo se administran automáticamente en función de las situaciones |
-ffnb |
TRUE o FALSE Valor predeterminado: FALSE
Note
FILE_FLAG_NO_BUFFERING se activará automáticamente en determinadas situaciones, como Dispersión/Recopilación. |
-ffss |
TRUE o FALSE Valor predeterminado: FALSE
Note
FILE_FLAG_SEQUENTIAL_SCAN se activará automáticamente en determinadas situaciones, como la E/S serializada. |
-ffra |
TRUE o FALSE Valor predeterminado: FALSE
Note
FILE_FLAG_RANDOM_ACCESS se activará automáticamente en determinadas situaciones, como E/S aleatorias. |
-ffwt |
TRUE o FALSE Valor predeterminado: FALSE
Note
FILE_FLAG_WRITE_THROUGH no se activará automáticamente, a menos que se especifique manualmente. Deshabilite flagSAUTO para la administración independiente de las marcas de archivo y los atributos. El comportamiento FLAGSAUTO cambiará en función de otros parámetros, como el identificador de archivo compartido o la E/S inversa, etc. Las marcas FFSS y FFRA no tienen ningún efecto si el sistema de archivos no admite la E/S almacenada en caché y FFNB no es compatible con el sistema de archivos ni se especifica. Las marcas FFSS y FFRA son mutuamente excluyentes y no se pueden combinar como auto-derrotas. |
-Bs |
Tamaño de bloque en bytes. Puede anexar k, m, g, t. Valor predeterminado: 64k |
-Bypass |
Omite la espera del umbral de E/S. Puede ser TRUE o FALSE. Valor predeterminado: FALSE |
-nsegments |
Tamaño de la matriz de segmentos para Dispersión/Recopilación. Valor predeterminado: 16
Note
Esta opción se corrige automáticamente en determinadas situaciones para Dispersión/Recopilación/ |
-totalsleep |
Tiempo total de suspensión para escenarios de asignación virtual o umbral de E/S con errores. Valor predeterminado: 30 minutos. |
-sleepint |
Intervalo de suspensión del bucle para escenarios de asignación virtual con errores Valor predeterminado: 2 minutos |
-iodifferupperthreshold |
Umbral superior para emitir solicitudes de E/S. Valor predeterminado: 1000 |
-iodifflowerthreshold |
El umbral inferior para reanudar la E/S solicitada después de la diferencia de E/S cae por debajo de este número. Valor predeterminado: 100.
Note
Esta opción es mutuamente excluyente con el modo de omisión y se omite si el modo de omisión está activado. |
-wfw |
La marca writer(WFW) espera a que WriterThreads se realice antes de que se produzca cualquier lectura. Esta opción puede ser true o false. Valor predeterminado: FALSE |
-Rr |
La opción lectura de desplazamiento aleatorio (RR) hace que ReaderThreads se inicie en un desplazamiento aleatorio. Este valor puede ser true o false. Valor predeterminado: TRUE |
-Rw |
La opción de escritura de desplazamiento aleatorio (RW) hace que WriterThreads se inicie en desplazamiento aleatorio. Este valor puede ser true de false. Valor predeterminado: FALSE |
-Rer |
Lectura inversa desde el desplazamiento inicial. Este valor puede ser 0, 1 o 2. Valor predeterminado: 2 |
-Rew |
Escritura inversa desde el desplazamiento inicial. Este valor puede ser 0, 1 o 2. Valor predeterminado: 0
Note
En el caso de las marcas RER y REW, 0 significa ninguna reversión, 1 significa reversión recta y 2 significa inversión aleatoria (no siempre aplicada). En el caso de las marcas RER y REW, es posible que la E/S de archivo completa no se complete y las estadísticas y los resultados notificados podrían ser inexactos. |
-temporizador |
Modo de temporizador (en segundos). Puede anexar s, m, h. Valor predeterminado: 0 Esto realiza la E/S hasta que el temporizador haya expirado. |
-timerloop |
Intervalo de bucle del temporizador (en segundos). Puede anexar s, m, h. Valor predeterminado: igual que la opción del temporizador
Note
La opción de temporizador solo es para la emisión de solicitudes y la finalización seguirá pasando (no se aplica ningún temporizador para la finalización). |
-onlineverify |
Comprueba el contenido del archivo después de emitir solicitudes de escritura en modo en línea. Valor predeterminado: TRUE |
-offlineverify |
Comprueba el contenido del archivo en modo sin conexión volviendo a ejecutar la prueba de nuevo. Valor predeterminado: FALSE |
-allowzero4verify |
Permite que un cero forme parte de la comprobación completa (OFFLINE o ONLINE). Valor predeterminado: FALSE |
-onlyzero4verify |
Permite que un cero forme parte de la comprobación completa (OFFLINE o ONLINE). Valor predeterminado: FALSE |
-sharedfh |
Permite usar el mismo identificador de archivo para todas las E/S. Valor predeterminado: FALSE |
-Regresión |
Variación de regresión. Este valor puede ser - 1 - 10 o 1001(hace referencia a todas las variaciones) Valor predeterminado: 0 (sin regresión) |
-displayprogress |
Mostrar progreso de E/S (en segundos), Puede anexar s, m, h, Valor predeterminado: 2 m |
-fullcheck |
Comprobación completa de los datos después de la comprobación en línea o sin conexión. Valor predeterminado: true. |
-dbgcheck |
Divide en un depurador de kernel en caso de error. Este valor puede ser true o false. Valor predeterminado: true. |
-tolerasurpriseremove |
No interrumpa en un depurador de kernel en un error SurpriseRemove. Este valor puede ser true o false. Valor predeterminado: false |
-tolerarepair |
No interrumpa en un depurador de kernel en un error de reparación. Este valor puede ser true o false. Valor predeterminado: false |
-tolerafailio |
No interrumpa en un depurador de kernel en un error de FailIO. Este valor puede ser true o false. Valor predeterminado: false |
-exitonerror |
Salga de un error. Este valor puede ser true o false. Valor predeterminado: False |
Nota
Para obtener ayuda de la línea de comandos para esta prueba, escriba /?.
Lista de archivos
Archivo | Ubicación |
---|---|
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\ |
Parámetros
Nombre de parámetro | Descripción de los parámetros |
---|---|
LLU_NetAccessOnly | |
TEST_PATH |