Partilhar via


ScatterGather (SYSTEM)

Esse teste valida cenários de confiabilidade de E/S do sistema de arquivos, principalmente de forma assíncrona, utilizando as APIs ReadFile/WriteFile/ReadFileScatter/WriteFileGather. Os testes de HLK exercem variações de regressão automatizadas predefinidas.

Detalhes do teste

   
Especificações
  • System.Fundamentals.StorageAndBoot.BootPerformance
Plataformas
  • Windows 10, edições de cliente (x86)
  • Windows 10, edições de cliente (x64)
Versões com suporte
  • Windows 10
  • Windows 10, versão 1511
  • Windows 10, versão 1607
  • Windows 10, versão 1703
  • Windows 10, versão 1709
  • Windows 10, versão 1803
  • Windows 10, versão 1809
  • Windows 10, versão 1903
  • Próxima atualização para Windows 10
Tempo de execução esperado (em minutos) 240
Categoria Cenário
Tempo limite (em minutos) 14400
Requer reinicialização false
Requer configuração especial false
Tipo automático

 

Documentação adicional

Os testes nessa área de recurso podem ter documentação adicional, incluindo pré-requisitos, configuração e informações de solução de problemas, que podem ser encontradas nos tópicos a seguir:

Executando o teste

Antes de executar o teste, conclua a configuração de teste conforme descrito nos requisitos de teste: Pré-requisitos de teste de conceitos básicos do sistema WDTF.

Executa simultaneamente a E/S (gravações e leitura) de maneira multithread utilizando portas de conclusão de E/S para concluir a E/S. Ele começará definindo inicialmente o EOF do arquivo e agendando os threads de E/S. Enquanto o arquivo está sendo gravado, ele executa a verificação online em que espera zero ou valor calculado de deslocamento. Depois que todo o arquivo tiver sido gravado, ele executará a verificação completa do arquivo e falhará no teste se zero ou um valor inesperado for encontrado.

Solucionando problemas

Para solução de problemas genéricos de falhas de teste do HLK, consulte Solução de problemas de falhas de teste do Windows HLK.

Para obter informações de solução de problemas, consulte Solução de problemas de testes de conceitos básicos do sistema.

Este teste retorna Pass ou Fail. Para examinar os detalhes do teste, examine o log de teste do Windows Hardware Lab Kit (Windows HLK) Studio.

Mais informações

Modos de teste com suporte:

Esperamos que a maioria dos usuários use variações de regressão predefinidas.

Padrão, Regressão (variações predefinidas) e estresse indicam certos tipos de falhas, como repetições de Alocação Virtual etc. Para o modo padrão, há um sinalizador flagsauto que gerencia a maioria dos parâmetros se o usuário não quiser fornecer os parâmetros manualmente. Além disso, há suporte para a funcionalidade de temporizador com modos padrão e de estresse. Para o modo de regressão, há uma variação de temporizador predefinida.

Modos de leitura/gravação com suporte:

Modo de leitura/gravação:

  • RW( Leitura, Gravação)

  • RWG( Read, Write Gather)

  • RSW( Dispersão de Leitura, Gravação)

  • RSWG( Dispersão de leitura, gravação de coleta)

  • RRW( Leitura aleatória, gravação)

  • RRWG( Leitura aleatória, coleta de gravação)

  • RWR( Leitura, Gravação Aleatória)

  • RSWR( Dispersão de Leitura, Gravação Aleatória)

  • RRWR( Leitura Aleatória, Gravação Aleatória – Aproximadamente 50% de Dispersão/Coleta) –> Padrão

  • RRWR7( Leitura aleatória, gravação aleatória – aproximadamente 30% dispersão/coleta)

  • RRWR3( Leitura aleatória, gravação aleatória – aproximadamente 70% de dispersão/coleta

Além disso, o teste dá suporte à Leitura Inversa e à Gravação Inversa.

Mecanismo de limitação de E/S:

Dá suporte ao limite Inferior Superior & para solicitações de E/S controladas. O modo de bypass também é possível, o que essencialmente detona o sistema com E/S.

Padrão de dados:

Valor alfabético computado com deslocamento simples. No entanto, para variação de temporizador, pode haver buracos.

Modos de validação de dados:

Dá suporte a online (validação simultânea juntamente com gravações), verificação completa (que é após a conclusão de todas as gravações) e modos de verificação offline. Todos esses modos podem ser desativados/ativados. Se a verificação online estiver desativada, essencialmente apenas as gravações ocorrerão durante a fase inicial após a qual a verificação completa será executada.

A diferença entre o marcar Online e Completo é que o marcar completo só é feito depois que todas as gravações são concluídas por um único thread enquanto a verificação online é feita simultaneamente durante as gravações e durante, o que espera valor calculado zero ou deslocado, ao contrário da verificação completa, em que apenas exceto o valor calculado de deslocamento.

Uso de comando

Comando Descrição

ScatterMultiThread.exe -default -rwmode:rw -iomode:sync

Execute a E/S de Leitura de Gravação no modo de Sincronização com o tamanho do arquivo padrão.

ScatterMultiThread.exe -default -rwmode:RSWG -RR -RER:2 -TESTPATH:d:\Scatter -FILESIZE:500m

Execute a Coleta de Dispersão completa, arquivo de 500m, no testpath especificado com deslocamento aleatório e leitura inversa.

ScatterMultiThread.exe -default -rwmode:RRWR -FILESIZE:2g -IODIFFUPPERTHRESHOLD:500 -IODIFFLOWERTHRESHOLD:100

Executar o arquivo de 2 GB de E/S de Coleta de Dispersão de 50% com limite superior e inferior de E/S

ScatterMultiThread.exe -regressão -regressão:6

Execute a variação de regressão predefinida 6.

ScatterMultiThread.exe -stress -RWMODE:rrwr -THREADS:2 -BS:100k

Executar a coleta de dispersão no modo de estresse com 2 threads leitor e 2 gravadores com tamanho de bloco de E/S de 100k/

ScatterMultiThread.exe -default -FILE:timer.dat -timer:19s -FILESIZE:5g -ONLINEVERIFY:FALSE

Modo de temporizador ReadWrite E/S não armazenada em buffer e nenhum modo OnlineVerify.

ScatterMultiThread.exe -default -OFFLINEVERIFY -FILE:timer.dat -FULLCHECK:FALSE -ALLOWZERO4VERIFY

Verificação offline da variação acima com a verificação completa desabilitada e o modo AllowZero4Verify.

 

Sintaxe de comando

Opção de comando Descrição

ScatterMultiThread.exe

As opções de linha de comando para o teste estão listadas abaixo.

-help ou /?

Exibe a ajuda.

-Padrão

Executa a variação padrão com parâmetros de teste da linha de comando.

-Stress

Modo de estresse. Tenta novamente as falhas de alocação de memória etc.

-Regressão

Modo de regressão. Executa o modo de regressão predefinido.

-Testpath

Caminho completo para o arquivo.

Valor padrão: CWD

-file

Arquivo no caminho de teste ou completo para o arquivo.

Valor padrão: Scatter.dat

-Filesize

Tamanho do arquivo em bytes. Você também pode acrescentar k, m, g ou t.

Valor padrão: 1m

-Tópicos

Número de threads de leitor e gravador exclusivos.

Valor padrão: 2

-completionthreads

O número de threads de conclusão.

Valor padrão: o dobro do número de processadores

-rwmode

Modo de leitura/gravação:

  • RW( Leitura, Gravação)

  • RWG( Read, Write Gather)

  • RSW( Dispersão de Leitura, Gravação)

  • RSWG( Dispersão de leitura, gravação de coleta)

  • RRW( Leitura aleatória, gravação)

  • RRWG( Leitura aleatória, coleta de gravação)

  • RWR( Leitura, Gravação Aleatória)

  • RSWR( Dispersão de Leitura, Gravação Aleatória)

  • RRWR( Leitura aleatória, gravação aleatória – aproximadamente 50% de dispersão/coleta) –> padrão

  • RRWR7( Leitura aleatória, gravação aleatória – aproximadamente 30% de dispersão/coleta)

  • RRWR3( Leitura aleatória, gravação aleatória – aproximadamente 70% de dispersão/coleta

-iomode

sync ou async

Valor padrão: assíncrono

-flagsauto

TRUE ou FALSE

Valor padrão: TRUE

Observação  

Determinados sinalizadores de arquivo são gerenciados automaticamente com base nas situações

 

-ffnb

TRUE ou FALSE

Valor padrão: FALSE

Observação  

FILE_FLAG_NO_BUFFERING será ativado automaticamente em determinadas situações, como Dispersão/Coleta.

 

-ffss

TRUE ou FALSE

Valor padrão: FALSE

Observação  

FILE_FLAG_SEQUENTIAL_SCAN será ativado automaticamente em determinadas situações, como E/S serializada.

 

-ffra

TRUE ou FALSE

Valor padrão: FALSE

Observação  

FILE_FLAG_RANDOM_ACCESS será ativado automaticamente em determinadas situações, como E/S aleatória.

 

-ffwt

TRUE ou FALSE

Valor padrão: FALSE

Observação  

FILE_FLAG_WRITE_THROUGH não será ativado automaticamente, a menos que seja especificado manualmente.

Desabilite o sinalizador FLAGSAUTO para gerenciamento independente de sinalizadores e atributos de arquivos.

O comportamento FLAGSAUTO será alterado dependendo de outros parâmetros, como identificador de arquivo compartilhado ou E/S reversa etc.

Os sinalizadores FFSS e FFRA não terão efeito se o sistema de arquivos não der suporte à E/S armazenada em cache e o FFNB não tiver suporte do sistema de arquivos ou especificado.

Os sinalizadores FFSS e FFRA são mutuamente exclusivos e não podem ser combinados, pois são autodestrutivos.

 

-Bs

Tamanho do bloco em bytes. Você pode acrescentar k, m, g, t.

Padrão: 64k

-Ignorar

Ignora a espera do Limite de E/S. Isso pode ser VERDADEIRO ou FALSO.

Valor padrão: FALSE

-nsegments

O tamanho da matriz do segmento para Dispersão/Coleta.

Valor padrão: 16

Observação  

Essa opção é corrigida automaticamente em determinadas situações para Dispersão/Coleta/

 

-totalsleep

O tempo de suspensão total para cenários de limite de E/S ou alocação virtual com falha.

Valor padrão: 30 minutos

-sleepint

O intervalo de suspensão do loop para cenários de alocação virtual com falha

Valor padrão: 2 minutos

-iodifferupperthreshold

O limite superior para emitir solicitações de E/S.

Valor padrão: 1.000

-iodifflowerthreshold

O limite inferior para retomar a E/S solicitada após a comparação de E/S fica abaixo desse número.

Valor padrão: 100

Observação  

Essa opção é mutuamente exclusiva com o modo de bypass e será ignorada se o modo de bypass estiver ativado.

 

-wfw

O sinalizador writer(WFW) aguarda que WriterThreads seja feito antes que qualquer leitura aconteça. Essa opção pode ser verdadeira ou falsa.

Valor padrão: FALSE

-Rr

A opção RR (leitura de deslocamento aleatório) faz com que ReaderThreads comece em um deslocamento aleatório. Esse valor pode ser verdadeiro ou falso.

Valor padrão: TRUE

-Rw

A opção RW (gravação de deslocamento aleatório) faz com que WriterThreads comece com deslocamento aleatório. Esse valor pode ser true de false.

Valor padrão: FALSE

-Rer

A leitura inversa do deslocamento inicial. Esse valor pode ser 0, 1 ou 2.

Valor padrão: 2

-Rew

A gravação inversa do deslocamento inicial. Esse valor pode ser 0, 1 ou 2.

Valor padrão: 0

Observação  

Para sinalizadores RER e REW, 0 significa nenhuma reversão, 1 significa reversão direta e 2 significa reversão aleatória (não aplicada sempre).

Para sinalizadores RER e REW, a E/S completa do arquivo pode não ser concluída e as estatísticas e os resultados relatados podem ser imprecisos.

 

-Timer

Modo de temporizador (em segundos). Você pode acrescentar s, m, h.

Valor padrão: 0

Isso executa E/S até que o temporizador tenha expirado.

-timerloop

O intervalo de loop do temporizador (em segundos). Você pode acrescentar s, m, h.

Valor padrão: o mesmo que a opção de temporizador

Observação  

A opção de temporizador é apenas para a emissão de solicitações e a conclusão ainda será concluída (nenhum temporizador é aplicável à conclusão).

 

-onlineverify

Verifica o conteúdo do arquivo depois de emitir solicitações de gravação no modo online.

Valor padrão: TRUE

-offlineverify

Verifica o conteúdo do arquivo no modo offline executando novamente o teste.

Valor padrão: FALSE

-allowzero4verify

Permite que um zero faça parte da verificação completa (OFFLINE ou ONLINE).

Valor padrão: FALSE

-onlyzero4verify

Permite que um zero faça parte da verificação completa (OFFLINE ou ONLINE).

Valor padrão: FALSE

-sharedfh

Permite que o mesmo identificador de arquivo seja usado para toda a E/S.

Valor padrão: FALSE

-Regressão

A variação de regressão. Esse valor pode ser - 1 - 10 ou 1001(refere-se a todas as variações)

Valor padrão: 0 (sem regressão)

-displayprogress

Exibir progresso de E/S (em segundos), Você pode acrescentar s, m, h,

Valor padrão: 2m

-fullcheck

Verificação completa dos dados após a verificação online ou offline.

Valor padrão: true

-dbgcheck

Divide em um depurador de kernel em caso de falha. Esse valor pode ser verdadeiro ou falso.

Valor padrão: true

-toleratesurpriseremove

Não interrompa um depurador de kernel em uma falha surpriseRemove. Esse valor pode ser verdadeiro ou falso.

Valor Padrão: false

-toleraterepair

Não interrompa um depurador de kernel em uma falha de reparo. Esse valor pode ser verdadeiro ou falso.

Valor Padrão: false

-toleratefailio

Não interrompa um depurador de kernel em uma falha de FailIO. Esse valor pode ser verdadeiro ou falso.

Valor Padrão: false

-exitonerror

Saia em caso de falha. Esse valor pode ser verdadeiro ou falso.

Valor padrão: False

Observação

   Para obter ajuda de linha de comando para este teste, digite /?.

 

Lista de arquivos

Arquivo Location

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

Nome do parâmetro Descrição do parâmetro
LLU_NetAccessOnly
TEST_PATH