Compartilhar via


Usar o utilitário SQLIOSim para simular a atividade do SQL Server em um subsistema de disco

Este artigo descreve como usar o utilitário SQLIOSim para executar testes de estresse em subsistemas de disco para simular a atividade do SQL Server.

Versão original do produto: SQL Server
Número original do KB: 231619

Introdução

Este artigo descreve a ferramenta SQLIOSim. Você pode usar o SQLIOSim para executar testes de confiabilidade e integridade em subsistemas de disco que o SQL Server utiliza. Esses testes SQLIOSim simulam atividades de leitura, gravação, ponto de verificação, backup, classificação e leitura antecipada que o Microsoft SQL Server faz. Para obter mais informações sobre os padrões de E/S do SQL Server, consulte Noções básicas de E/S do SQL Server, Capítulo 2. O utilitário SQLIOSim executa essa simulação independentemente do mecanismo do SQL Server.

O objetivo principal dos testes de simulação de E/S é garantir a confiabilidade do subsistema de E/S subjacente antes que o SQL Server comece a usá-lo. O SQLIOSim não interage com o SQL Server e nem mesmo requer que o SQL Server esteja em execução. Na verdade, na maioria dos casos, recomendamos que você use SQLIOSim quando o SQL Server não estiver em execução para evitar a competição pela taxa de transferência de E/S entre os dois aplicativos. Tenha muito cuidado para não apontar ou usar os arquivos de banco de dados reais do SQL Server em seu teste SQLIOSim, pois você pode substituí-los.

Para ajudar a manter a integridade de dados apropriada, recomendamos que você execute testes de estresse do subsistema de E/S antes de implantar o SQL Server em um novo hardware. O utilitário SQLIOSim simula os padrões de leitura e gravação e as técnicas de identificação de problemas do SQL Server. Para executar essas tarefas, o utilitário SQLIOSim simula a atividade do usuário e a atividade do sistema de um sistema SQL Server.

O utilitário SQLIOSim não garante a segurança ou integridade dos dados. O utilitário foi projetado para fornecer testes de linha de base de um ambiente de sistema. O utilitário SQLIOSim pode expor possíveis problemas de integridade de dados.

Para obter mais informações sobre log e armazenamento de dados, consulte Descrição dos algoritmos de log e armazenamento de dados que estendem a confiabilidade dos dados no SQL Server.

Se você precisar fazer testes de benchmark de desempenho e quiser determinar a capacidade de throughput de I/O do sistema de armazenamento, use a ferramenta Diskspd .

O utilitário SQLIOSim substitui o utilitário SQLIOStress, que antes era conhecido como utilitário SQL70IOStress.

Localização do SQLIOSim

No passado, o SQLIOSim era enviado como um pacote de download separado. A partir do SQL Server 2008, o SQLIOSim está incluído na instalação do produto SQL Server. Ao instalar o SQL Server, você pode encontrar a ferramenta SQLIOSim na pasta \Binn da instalação do SQL Server. Recomendamos que você use esta versão atualizada da ferramenta para simular a atividade de E/S no subsistema de disco.

Três arquivos fazem parte do pacote SQLIOSim. A pasta \Binn contém dois arquivos executáveis, SQLIOSim.com e SQLIOSim.exe. Ambos os arquivos executáveis fornecem recursos idênticos de simulação de E/S.

  • SQLIOSim.com é uma ferramenta de linha de comando. Você pode configurá-lo para ser executado sem interação do usuário. Para fazer essa configuração, você pode usar parâmetros de linha de comando, um arquivo de configuração ou uma combinação desses dois métodos.
  • SQLIOSim.exe é um aplicativo gráfico (GUI) que não aceita parâmetros de linha de comando. No entanto, SQLIOSim.exe carrega dados de configuração padrão de arquivos de configuração.
  • Você também pode usar arquivos de configuração para ajudar a automatizar a simulação de E/S com SQLIOSim. Para obter mais informações, consulte a seção Arquivo de configuração SQLIOSim.

Usar SQLIOSim em um computador sem SQL Server

Recomendamos que você use o SQLIOSim para um teste estendido em um computador antes de instalar o SQL Server. Use-o para testar o subsistema de E/S no qual você planeja colocar dados e arquivos de log no futuro e garantir a confiabilidade do subsistema de E/S. Para realizar essa tarefa, considere copiar os três arquivos SQLIOSim de um computador em que o SQL Server está instalado e executar os testes antes de uma instalação do SQL Server. Copie SQLIOSim.com, SQLIOSim.exe e, opcionalmente, um ou mais dos arquivos de configuração se você planeja usar configurações pré-configuradas. Em seguida, execute a simulação de teste nessa máquina.

Como usar o SQLIOSim

Você não precisa do serviço SQL Server em execução enquanto estiver executando o SQLIOSim. Na verdade, recomendamos que você não execute o SQL Server enquanto o SQLIOSim estiver em execução, pois eles podem competir por recursos de E/S.

Aviso

Não especifique os arquivos de banco de dados reais do SQL Server para teste. O utilitário SQLIOSim substituirá os dados por padrões de teste aleatórios e seus dados reais do SQL Server serão perdidos.

Os próximos exemplos ilustram como executar o SQLIOSim usando a GUI e a linha de comando.

Exemplo 1: Usar a GUI

  1. Vá para C:\Arquivos de Programas\Microsoft SQL Server\MSSQLXX.<InstanceName>\MSSQL\Binn.

  2. Inicie o aplicativo SQLIOSIM.EXE . Você pode ver a janela Arquivos e Configuração , que contém algumas configurações padrão. Você pode modificar essas configurações para atender às suas necessidades de configuração.

    Captura de tela que mostra a configuração do arquivo.

  3. Realce o primeiro arquivo mdx C:\temp\sqliosim\sqliosim.mdx na lista. Este arquivo é o equivalente a um arquivo de dados.

  4. Modifique as configurações do arquivo alterando seu local, tamanho, tamanho máximo ou incremento. Mantenha o arquivo de log desmarcado, pois deseja simular um arquivo de dados. Em seguida, selecione o botão Aplicar.

    Captura de tela que mostra a configuração do arquivo de dados.

    O exemplo mostra que o local do arquivo é alterado para D:\temp\sqliosim\sqliosim.mdx, seu tamanho é definido como 2048 MB, seu tamanho máximo é definido como 4096 MB e seu tamanho de incremento é definido como 64 MB.

  5. Modifique o segundo arquivo com o sufixo ldx . Esse arquivo representa o equivalente a um arquivo de log de transações. Certifique-se de manter a caixa de seleção Arquivo de log ativada. Ao concluir, selecione Aplicar.

    Captura de tela da configuração do arquivo de log.

  6. Você pode adicionar mais arquivos à lista selecionando a opção Novo arquivo no centro da tela dentro da grade tabular. Depois de selecionar Novo arquivo, você pode digitar o local do arquivo e escolher as configurações restantes. Não se esqueça de selecionar Aplicar. Veja um exemplo:

    Captura de tela da adição de um novo arquivo de teste.

  7. Quando estiver satisfeito com sua configuração, selecione o botão OK .

  8. Selecione Iniciar do Simulador>para executar a simulação de E/S do SQL. Como alternativa, você pode selecionar F12 ou o botão mais à esquerda com um círculo verde dentro dele.

    Captura de tela que mostra um SQLIOSim em execução.

  9. Aguarde a conclusão da simulação e examine a saída.

Exemplo 2: Usar uma ferramenta de linha de comando e um arquivo de configuração

  1. Modifique o arquivo sqliosim.default.cfg.ini removendo os comentários das seções e File2 modificando os FileName valores para novos File1 arquivos SQLIOSim. Por exemplo:

    [File1]
    FileName=D:\sqliosim\sqliosim.mdx
    InitialSize=100
    MaxSize=200
    Increment=10
    Shrinkable=TRUE
    LogFile=FALSE
    Sparse=FALSE
    
    [File2]
    FileName=L:\sqliosim\sqliosim.ldx
    InitialSize=50
    MaxSize=50
    Increment=0
    Shrinkable=FALSE
    LogFile=TRUE
    Sparse=FALSE
    
  2. Execute SQLIOSIM.COM usando o arquivo de configuração C:\temp\sqliosimconfig\sqliosim.default.cfg.ini:

    SQLIOSIM.COM -cfg C:\temp\sqliosimconfig\sqliosim.default.cfg.ini -log C:\temp\sqliosimconfig\sqliosim.log.xml
    

Exemplo 3: Usar uma ferramenta de linha de comando com opções

Você pode testar vários volumes de disco ao mesmo tempo usando a -dir opção. O exemplo a seguir cria arquivos de 500 MB e executa o teste por 300 segundos (cinco minutos).

SQLIOSIM.COM -cfg C:\temp\sqliosimconfig\sqliosim.default.cfg.ini -log C:\temp\sqliosim\sqliosim.log.xml -dir "D:\sqliosim" -dir "F:\sqliosim\testfolder" -size 500 -d 300

Exemplo 4: Usar uma ferramenta de linha de comando em várias unidades

O exemplo a seguir cria arquivos de 32 GB e executa o teste por 600 segundos (10 minutos) usando o arquivo de configuração sqliosim.hwcache.cfg.ini .

SQLIOSIM.COM -cfg "D:\Temp\SQLIOSIM\SQLIOSIM_Configs\sqliosim.hwcache.cfg.ini" -d 600 -dir D:\temp\sqliosim -log D:\temp\sqliosim\simlog.xml -size 32768

SQLIOSim.com parâmetros de linha de comando

SQLIOSIM.COM aceita um número limitado de parâmetros de linha de comando para controlar o comportamento básico. O arquivo de configuração do utilitário SQLIOSim fornece controle de comportamento avançado. Quando os parâmetros de linha de comando e as opções de arquivo de configuração se sobrepõem, os parâmetros de linha de comando têm precedência.

Parâmetro Comentário
-cfgarquivo Substitua o Sqliosim.cfg.ini arquivo de configuração padrão. O utilitário SQLIOSim retornará um erro se o utilitário não puder encontrar o arquivo.
-savearquivo Salve a configuração resultante no arquivo de configuração. Você pode usar essa opção para criar o arquivo de configuração inicial.
-logarquivo Especifique o nome do arquivo de log de erros e o caminho do arquivo de log de erros. O nome do arquivo padrão é Sqliosim.log.xml.
-dirDir Defina o local para criar o arquivo de dados (.mdf) e o arquivo de log (.ldf). Você pode executar esse comando várias vezes. Na maioria dos casos, esse local é uma raiz de unidade ou um ponto de montagem de volume. Esse local pode ser um caminho longo ou um caminho UNC.
-dSegundos Defina a duração da execução principal. Esse valor exclui a fase de preparação e a fase de verificação.
-sizeMB Defina o tamanho inicial do arquivo de dados em megabytes (MB). O arquivo pode crescer até duas vezes o tamanho inicial. O tamanho do arquivo de log é calculado como metade do tamanho do arquivo de dados. No entanto, o arquivo de log não pode ser maior que 50 MB.

Arquivo de configuração do SQLIOSim

Você pode usar um arquivo de configuração com SQLIOSim para ajudá-lo a escolher todas as configurações para a simulação de E/S antecipadamente. Esse arquivo de configuração pode ajudar a automatizar as execuções do SQLIOSim.

Os arquivos de configuração de exemplo para vários testes podem ser baixados do repositório GitHub da equipe de suporte do SQL Server.

Você não precisa usar um arquivo de configuração. Se você não usar um arquivo de configuração, todos os parâmetros terão valores padrão, exceto o local do arquivo de dados e o local do arquivo de log. Você deve usar um dos seguintes métodos para especificar o local do arquivo de dados e o local do arquivo de log:

  • Use os parâmetros de linha de comando no arquivo SQLIOSIM.COM .
  • Use a caixa de diálogo Arquivos e Configuração depois de executar o arquivo SQLIOSim.exe .
  • Use a seção Arquivo <N> do arquivo de configuração.

Arquivos de configuração de amostra

Cinco arquivos de configuração de exemplo estão disponíveis se você quiser usá-los para execuções automatizadas do SQLIOSim.

Arquivo de exemplo Descrição Parâmetros que diferem do arquivo de configuração padrão
sqliosim.default.cfg.ini
sqliosim.hwcache.cfg.ini - Minimize as leituras

- Os arquivos são feitos pequenos para mantê-los totalmente na memória

- Sem leituras sequenciais
Para a seção AuditUser e para a seção ReadAheadUser :

CacheHitRatio=10000
UserCount=0
sqliosim.nothrottle.cfg.ini - Remova a limitação de E/S

- Minimize o tempo de espera para aumentar o volume de E/S
TargetIODuration=1000000
AuditDelay=10
RADelay=10
sqliosim.seqwrites.cfg.ini - Minimize as leituras

- Os arquivos são feitos pequenos para mantê-los totalmente na memória

- Os arquivos não podem ser reduzidos

- Sem leituras sequenciais

- Sem acesso aleatório

- Atualização em massa em grandes partes sem atrasos
Shrinkable=FALSE

Para as seções AuditUser, ReadAheadUser e RandomUser :

CacheHitRatio=10000
ForceReadAhead=FALSE
BuffersBUMin=600
BuffersBUMax=1000
BUDelay=1
UserCount=0
sqliosim.sparse.cfg.ini - Use apenas 32 MB de memória

- Tornar a duração de E/S de destino grande o suficiente para permitir muitas solicitações de E/S pendentes

- Desative APIs de dispersão/coleta para emitir solicitações de E/S separadas para cada página de 8 KB

- Crie um arquivo não encolhível de 1 GB

- Crie um fluxo esparso secundário não encolhível de 1 GB no arquivo
MaxMemoryMB=32
TestCycles=3
TestCycleDuration=600
TargetIODuration=10000
UseScatterGather=FALSE

[File1]
FileName=sqliosim.mdx
InitialSize=1000 MaxSize=1000
Increment=10
Shrinkable=FALSE
LogFile=FALSE
Sparse=FALSE

[File2]
FileName=sqliosim.ldx
InitialSize=50
MaxSize=50
Increment=0
Shrinkable=FALSE
LogFile=TRUE
Sparse=FALSE

[File3]
FileName=sqliosim.mdx:replica
InitialSize=1000
MaxSize=1000
Increment=10
Shrinkable=FALSE
LogFile=FALSE
Sparse=TRUE

Advertências sobre valores de parâmetro

  • Se o nome do parâmetro indicar que o parâmetro é uma proporção ou uma porcentagem, o valor do parâmetro será expresso como a porcentagem ou a proporção dividida por 0,01. Por exemplo, o valor do CacheHitRatio parâmetro é 10 percent. Esse valor é expresso porque 1000 10 dividido por 0,01 é 1000igual a . O valor máximo de um parâmetro de porcentagem é 10000.
  • Se o tipo de parâmetro for numérico e você atribuir um valor não numérico ao parâmetro, o utilitário SQLIOSim definirá o parâmetro como 0.
  • Se o tipo de parâmetro for Boolean, os valores válidos que você pode atribuir ao parâmetro são true e false. Além disso, os valores diferenciam maiúsculas de minúsculas. O utilitário SQLIOSim ignora quaisquer valores inválidos.
  • Se um par de parâmetros indicar um valor mínimo e um valor máximo, o valor mínimo não deve exceder o valor máximo. Por exemplo, o MinIOChainLength valor do parâmetro não deve ser maior que o valor do MaxIOChainLength parâmetro.
  • Se o parâmetro indicar um número de páginas, o utilitário SQLIOSim verificará o valor atribuído ao parâmetro em relação ao arquivo que o utilitário SQLIOSim processa. O utilitário SQLIOSim executa essa verificação para garantir que o número de páginas não exceda o tamanho do arquivo.

Seções do arquivo de configuração

Existem várias seções no arquivo de configuração:

Cada uma dessas seções é descrita na seção a seguir.

Seção CONFIG

O utilitário SQLIOSim usa os valores especificados na seção CONFIG do arquivo de configuração SQLIOSim para estabelecer o comportamento de teste global.

Parâmetro Valor padrão Descrição Comments
ErrorFile sqliosim.log.xml Nome do arquivo de log do tipo XML
CPUCount Número de CPUs no computador Número de CPUs lógicas a serem criadas O máximo é de 64 CPUs.
Affinity 0 Máscara de afinidade de CPU física a ser aplicada a CPUs lógicas A máscara de afinidade deve estar dentro da máscara de CPU ativa. Um valor de 0 significa que todas as CPUs disponíveis serão usadas.
MaxMemoryMB Memória física disponível quando o utilitário SQLIOSim é iniciado Tamanho do buffer pool em MB O valor não pode exceder a quantidade total de memória física no computador.
StopOnError true Interrompe a simulação quando ocorre o primeiro erro
TestCycles 1 Número de ciclos de teste completos a serem executados Um valor de 0 indica um número infinito de ciclos de teste.
TestCycleDuration 300 Duração de um ciclo de teste em segundos, excluindo a aprovação de auditoria no final do ciclo
CacheHitRatio 1000 Taxa de acertos do cache simulado quando o utilitário SQLIOSim lê do disco
MaxOutstandingIO 0 Número máximo de operações de E/S pendentes que são permitidas em todo o processo O valor não pode exceder 140.000. Um valor de significa que até aproximadamente 140.000 operações de 0 E/S são permitidas. Este é o limite da utilidade.
TargetIODuration 100 Duração das operações de E/S, em milissegundos, direcionadas pela limitação Se a duração média de E/S exceder a duração de E/S de destino, o utilitário SQLIOSim limitará o número de operações de E/S pendentes para diminuir a carga e melhorar o tempo de conclusão de E/S.
AllowIOBursts true Permitir desativar a limitação para postar muitas solicitações de E/S As intermitências de E/S são habilitadas durante a atualização inicial, o ponto de verificação inicial e as passagens finais do ponto de verificação no final dos ciclos de teste. O MaxOutstandingIO parâmetro ainda é respeitado. Você pode esperar avisos de E/S longos.
NoBuffering true Use a FILE_FLAG_NO_BUFFERING opção O SQL Server abre arquivos de banco de dados usando FILE_FLAG_NO_BUFFERING == trueo . Alguns utilitários e serviços, como o Analysis Services, usam FILE_FLAG_NO_BUFFERING == falseo . Para testar totalmente um servidor, execute um teste para cada configuração.
WriteThrough true Use a FILE_FLAG_WRITE_THROUGH opção O SQL Server abre arquivos de banco de dados usando FILE_FLAG_WRITE_THROUGH == trueo . No entanto, alguns utilitários e serviços abrem os arquivos de banco de dados usando FILE_FLAG_WRITE_THROUGH == falseo . Por exemplo, SQL Server Analysis Services abre os arquivos de banco de dados usando FILE_FLAG_WRITE_THROUGH == false. Para testar totalmente um servidor, execute um teste para cada configuração.
ScatterGather true Uso ReadScatter ou WriteGather APIs Se esse parâmetro for definido como true, o NoBuffering parâmetro também será definido como true.

O SQL Server usa E/S de dispersão/coleta para a maioria das solicitações de E/S.
ForceReadAhead true Execute uma operação de leitura antecipada mesmo que os dados já tenham sido lidos O utilitário SQLIOSim emite o comando read mesmo que a página de dados já esteja no buffer pool.

O Suporte do Microsoft SQL Server usou com êxito a configuração true para expor problemas de E/S.
DeleteFilesAtStartup true Excluir arquivos na inicialização se houver arquivos Um arquivo pode conter vários fluxos de dados. Somente os File <N> FileName fluxos especificados na entrada são truncados no arquivo. Se o fluxo padrão for especificado, todos os fluxos serão excluídos.
DeleteFilesAtShutdown false Excluir arquivos após a conclusão do teste Um arquivo pode conter vários fluxos de dados. Somente os File <N> FileName fluxos de dados especificados na entrada são truncados no arquivo. Se o fluxo de dados padrão for especificado, o utilitário SQLIOSim excluirá todos os fluxos de dados.
StampFiles false Expanda o arquivo carimbando zeros Esse processo pode levar muito tempo se o arquivo for grande. Se você definir esse parâmetro como false, o utilitário SQLIOSim estenderá o arquivo definindo um marcador de dados válido.

O SQL Server 2005 usa o recurso de inicialização instantânea de arquivos para arquivos de dados. Se o arquivo de dados for um arquivo de log ou se a inicialização instantânea de arquivo não estiver habilitada, o SQL Server executará carimbo zero. As versões do SQL Server anteriores ao SQL Server 2000 sempre executam carimbo zero.

Você deve alterar o valor do parâmetro durante o StampFiles teste para garantir que a inicialização instantânea do arquivo e o carimbo zero estejam funcionando corretamente.

Seção Arquivo<N>

O utilitário SQLIOSim foi projetado para permitir vários testes de arquivos. A File<N> seção é representada como [File1], [File2] para cada arquivo no teste.

Parâmetro Valor padrão Descrição Comments
FileName Nenhum valor padrão Caminho e nome do arquivo O FileName parâmetro pode ser um caminho longo ou um caminho UNC. Ele também pode incluir um nome e um tipo de fluxo secundário. Por exemplo, o FileName parâmetro pode ser definido como file.mdf:stream2.

OBSERVAÇÃO No SQL Server 2005, as operações DBCC usam fluxos. Recomendamos que você execute testes de fluxo.
InitialSize Nenhum valor padrão Tamanho inicial em MB Se o arquivo existente for maior que o valor especificado para o InitialSize parâmetro, o utilitário SQLIOSim não reduzirá o arquivo existente. Se o arquivo existente for menor, o utilitário SQLIOSim expandirá o arquivo existente.
MaxSize Nenhum valor padrão Tamanho máximo em MB Um arquivo não pode crescer mais do que o valor especificado para o MaxSize parâmetro.
Increment 0 Tamanho em MB do incremento pelo qual o arquivo aumenta ou diminui. Para obter mais informações, consulte a ShrinkUser seção deste artigo. O utilitário SQLIOSim ajusta o Increment parâmetro na inicialização para que a situação seja estabelecida: Increment * MaxExtents < MaxMemoryMB / NumberOfDataFiles.
Se o valor de Increment for 0, o utilitário SQLIOSim definirá o arquivo como não encolhedor.
Shrinkable false Indica se o arquivo pode ser reduzido ou expandido Se você definir o Increment parâmetro como 0, definirá o arquivo como não encolhendo. Nesse caso, você deve definir o Shrinkable parâmetro como false. Se você definir o Increment parâmetro como um valor diferente de 0, definirá o arquivo como encolhedor. Nesse caso, você deve definir o Shrinkable parâmetro como true.
Sparse false Indica se o atributo Sparse deve ser definido nos arquivos Para arquivos existentes, o utilitário SQLIOSim não limpa o atributo Sparse quando você define o Sparse parâmetro como false.

O SQL Server 2005 usa arquivos esparsos para oferecer suporte a bancos de dados de instantâneo e aos fluxos DBCC secundários.

Recomendamos que você habilite o arquivo esparso e os fluxos e, em seguida, execute uma passagem de teste.

NOTA Se você definir Sparse = true para as configurações do arquivo, não especifique NoBuffering = false na config seção. Se você usar essas duas combinações conflitantes, poderá receber um erro semelhante ao seguinte da ferramenta:

Erro:-=====Erro: 0x80070467
Texto do erro: Ao acessar o disco rígido, uma operação de disco falhou mesmo após novas tentativas.
Descrição: Falha na validação do buffer em C:\SQLIOSim.mdx Página: 28097
LogFile false Indica se um arquivo contém dados de log de transações ou do usuário Você deve definir pelo menos um arquivo de log.

Seção RandomUser

O utilitário SQLIOSim usa os valores especificados na RandomUser seção para simular um trabalho do SQL Server que está executando operações de consulta aleatórias, como padrões de E/S OLTP (Processamento de Transações Online).

Parâmetro Valor padrão Descrição Comments
UserCount -1 Número de threads de acesso aleatório que estão sendo executados ao mesmo tempo O valor não pode exceder o valor: CPUCount*1023-100.
O número total de todos os usuários também não pode exceder esse valor. Um valor de zero (0) significa que você não pode criar usuários de acesso aleatório. Um valor de -1 significa que você deve usar a configuração automática do valor: min(CPUCount*2, 8).
OBSERVAÇÃO Um sistema SQL Server pode ter milhares de sessões. A maioria das sessões não tem solicitações ativas. Use a count(*) função em consultas na sys.dm_exec_requests DMV (exibição de gerenciamento dinâmico) como uma linha de base para estabelecer esse valor de parâmetro de teste.

CPUCount aqui se refere ao valor do CPUCount parâmetro na CONFIG seção.

O min(CPUCount*2, 8) valor resulta no menor dos valores entre CPUCount*2 e 8.
JumpToNewRegionPercentage 500 A chance de um salto para uma nova região do arquivo O início da região é selecionado aleatoriamente. O tamanho da região é um valor aleatório entre o valor do MinIOChainLength parâmetro e o valor do MaxIOChainLength parâmetro.
MinIOChainLength 1 Tamanho mínimo da região nas páginas
MaxIOChainLength 100 Tamanho máximo da região em páginas O SQL Server 2005 Enterprise Edition e o SQL Server 2000 Enterprise Edition podem ler antecipadamente até 1.024 páginas.

O valor mínimo é 0. O valor máximo é limitado pela memória do sistema.

Normalmente, a atividade aleatória do usuário faz com que ocorram pequenas operações de verificação. Use os valores especificados na ReadAheadUser seção para simular operações de varredura maiores.
RandomUserReadWriteRatio 9000 Porcentagem de páginas a serem atualizadas Uma cadeia de comprimento aleatório é selecionada na região e pode ser lida. Esse parâmetro define a porcentagem das páginas a serem atualizadas e gravadas no disco.
MinLogPerBuffer 64 Tamanho mínimo do registro de log em bytes O valor deve ser um múltiplo do tamanho do setor em disco ou um tamanho que se ajuste uniformemente ao tamanho do setor em disco.
MaxLogPerBuffer 8192 Tamanho máximo do registro de log em bytes Esse valor não pode exceder 64.000. O valor deve ser um múltiplo do tamanho do setor em disco.
RollbackChance 100 A chance de que ocorra uma operação na memória que faça com que ocorra uma operação de reversão. Quando essa operação de reversão ocorre, o SQL Server não grava no arquivo de log.
SleepAfter 5 Tempo de sono após cada ciclo, em milissegundos

Seção AuditUser

O utilitário SQLIOSim usa os valores especificados na seção para simular a AuditUser atividade DBCC para ler e auditar as informações sobre a página. A validação ocorre mesmo se o valor do UserCount parâmetro for definido como 0.

Parâmetro Valor padrão Descrição Comments
UserCount 2 Número de threads de auditoria O valor não pode exceder o seguinte valor: CPUCount*1023-100.
O número total de todos os usuários também não pode exceder esse valor. Um valor de 0 significa que você não pode criar usuários de acesso aleatório. Um valor de -1 significa que você deve usar a configuração automática do valor: min(CPUCount*2, 8).
OBSERVAÇÃO Um sistema SQL Server pode ter milhares de sessões. A maioria das sessões não tem solicitações ativas. Use a count(*) função em consultas no sys.dm_exec_requests DMV como uma linha de base para estabelecer esse valor de parâmetro de teste.

CPUCount aqui se refere ao valor do CPUCount parâmetro na CONFIG seção.

O min(CPUCount*2, 8) valor resulta no menor dos valores entre CPUCount*2 e 8.
BuffersValidated 64
DelayAfterCycles 2 Aplique o parâmetro AuditDelay após a conclusão do número de ciclos BuffersValidated
AuditDelay 200 Número de milissegundos de espera após cada DelayAfterCycles operação

Seção ReadAheadUser

O utilitário SQLIOSim usa os valores especificados na seção para simular a ReadAheadUser atividade de leitura antecipada do SQL Server. O SQL Server aproveita a atividade de leitura antecipada para maximizar os recursos de E/S assíncrona e limitar os atrasos de consulta.

Parâmetro Valor padrão Descrição Comments
UserCount 2 Número de threads de leitura antecipada O valor não pode exceder o seguinte valor: CPUCount*1023-100.
O número total de todos os usuários também não pode exceder esse valor. Um valor de 0 significa que você não pode criar usuários de acesso aleatório. Um valor de -1 significa que você deve usar a configuração automática do seguinte valor: min(CPUCount*2, 8).
OBSERVAÇÃO Um sistema SQL Server pode ter milhares de sessões. A maioria das sessões não tem solicitações ativas. Use a count(*) função em consultas no sys.dm_exec_requests DMV como uma linha de base para estabelecer esse valor de parâmetro de teste.

CPUCount aqui se refere ao valor do CPUCount parâmetro na seção CONFIG.

O min(CPUCount*2, 8) valor resulta no menor dos valores entre CPUCount*2 e 8.
BuffersRAMin 32 Número mínimo de páginas a serem lidas por ciclo O valor mínimo é 0. O valor máximo é limitado pela memória do sistema.
BuffersRAMax 64 Número máximo de páginas a serem lidas por ciclo As edições do SQL Server Enterprise podem ler até 1.024 páginas em uma única solicitação. Se você instalar o SQL Server em um computador que tenha muitos recursos de CPU, memória e disco, recomendamos aumentar o tamanho do arquivo e o tamanho da leitura antecipada.
DelayAfterCycles 2 Aplique o RADelay parâmetro após a conclusão do número especificado de ciclos
RADelay 200 Número de milissegundos de espera após cada DelayAfterCycles operação

Seção BulkUpdateUser

O utilitário SQLIOSim usa os valores especificados na BulkUpdateUser seção para simular operações em massa, como SELECT...INTO operações e BULK INSERT operações.

Parâmetro Valor padrão Descrição Comments
UserCount -1 Número de BULK UPDATE threads O valor não pode exceder o seguinte valor: CPUCount*1023-100
Um valor de -1 significa que você deve usar a configuração automática do seguinte valor: min(CPUCount*2, 8).
OBSERVAÇÃO Um sistema SQL Server pode ter milhares de sessões. A maioria das sessões não tem solicitações ativas. Use a count(*) função em consultas no sys.dm_exec_requests DMV como uma linha de base para estabelecer esse valor de parâmetro de teste.

CPUCount aqui se refere ao valor do CPUCount parâmetro na CONFIG seção.

O min(CPUCount*2, 8) valor resulta no menor dos valores entre CPUCount*2 e 8.
BuffersBUMin 64 Número mínimo de páginas a serem atualizadas por ciclo
BuffersBUMax 128 Número máximo de páginas a serem atualizadas por ciclo O valor mínimo é 0. O valor máximo é limitado pela memória do sistema.
DelayAfterCycles 2 Aplique o BUDelay parâmetro após a conclusão do número especificado de ciclos
BUDelay 10 Número de milissegundos de espera após cada DelayAfterCycles operação

Seção ShrinkUser

O utilitário SQLIOSim usa os valores especificados na ShrinkUser seção para simular operações de redução DBCC. O utilitário SQLIOSim também pode usar a ShrinkUser seção para fazer o arquivo crescer.

Parâmetro Valor padrão Descrição
MinShrinkInterval 120 Intervalo mínimo entre operações de redução em segundos
MaxShrinkInterval 600 Intervalo máximo entre as operações de redução em segundos
MinExtends 1 Número mínimo de incrementos pelos quais o utilitário SQLIOSim aumentará ou reduzirá o arquivo
MaxExtends 20 Número máximo de incrementos pelos quais o utilitário SQLIOSim aumentará ou reduzirá o arquivo

Configuração .ini comentários de arquivo

O caractere de ponto-e-vírgula (;) no início de uma linha no arquivo de .ini de configuração faz com que a linha seja tratada como um único comentário.

Criação de arquivo

O utilitário SQLIOSim cria arquivos de dados e arquivos de log separados para simular os padrões de E/S que o SQL Server gera em seu arquivo de dados e em seu arquivo de log. O utilitário SQLIOSim não usa o mecanismo do SQL Server para executar atividades de estresse. Portanto, você pode usar o utilitário SQLIOSim para testar um computador antes de instalar o SQL Server.

Ao executar o utilitário SQLIOSim, certifique-se de especificar o mesmo local de arquivo usado para os arquivos de banco de dados do SQL Server. Quando você faz isso, o utilitário simula o mesmo caminho de E/S que o banco de dados do SQL Server.

Você pode ativar os atributos de compactação ou criptografia para os arquivos de teste existentes. Você também pode habilitar esses atributos para o diretório existente onde os arquivos de teste serão criados. As opções correspondentes para habilitar esses atributos estão localizadas na caixa de diálogo Propriedades de um arquivo ou diretório.

Por padrão, o utilitário SQLIOSim cria arquivos de teste que têm as extensões de nome de arquivo .mdx e .ldx . Portanto, esses arquivos não substituirão os arquivos de log e dados existentes.

Aviso

Não especifique os arquivos de banco de dados reais do SQL Server para teste. O utilitário SQLIOSim substituirá os dados por padrões de teste aleatórios e seus dados reais do SQL Server serão perdidos.

Log de erros e tratamento do SQLIOSim

O utilitário SQLIOSim cria o arquivo de log de erros em um dos seguintes locais:

  • O local especificado no parâmetro de inicialização do log
  • O local especificado na ErrorFile= linha do arquivo Sqliosim.cfg.ini

O log de erros SQLIOSim.log.xml contém detalhes sobre a execução. Esses detalhes incluem informações de erro. Revise o log cuidadosamente para obter informações de erro e aviso.

Observação

Se você tiver um erro no utilitário SQLIOSim, recomendamos que você peça ao fabricante do hardware para ajudar a determinar a causa raiz do problema. O problema também pode ser causado por um driver de dispositivo, driver de filtro do sistema de arquivos (por exemplo, antivírus) ou sistema operacional.

Várias cópias

O utilitário SQLIOSim acomoda testes em vários níveis de arquivo e testes em vários níveis de usuário. O utilitário SQLIOSim não requer várias invocações. Você pode executar várias cópias do utilitário SQLIOSim se as seguintes condições forem verdadeiras:

  • Todas as cópias fazem referência a arquivos de teste exclusivos por instância do utilitário.
  • O MaxMemoryMB parâmetro de cada instância fornece uma região de memória não sobreposta que é suficiente para cada instância.

A soma do MaxMemoryMB parâmetro para cada instância deve ser menor ou igual à memória física total. Algumas fases de teste, como simulação de ponto de verificação, podem consumir muita memória e podem criar condições de falta de memória quando você executa várias cópias. Se ocorrer erros de falta de memória, você pode reduzir o número de cópias do utilitário em execução.

Referências