Use o utilitário SQLIOSim para simular SQL Server atividade 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 SQL Server atividade.

Versão original do produto: SQL Server
Número de KB original: 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 SQL Server utiliza. Esses testes SQLIOSim simulam atividades de leitura, gravação, ponto de verificação, backup, classificação e leitura antecipadas que a Microsoft SQL Server faz. Para obter mais informações sobre SQL Server padrões de E/S, consulte SQL Server Conceitos Básicos de E/S, Capítulo 2. O utilitário SQLIOSim executa essa simulação independentemente do mecanismo SQL Server.

O objetivo principal dos testes de simulação de E/S é garantir a confiabilidade do subsistema de E/S subjacente antes que seu SQL Server comece a usá-lo. O SQLIOSim não interage com SQL Server e nem sequer exige que SQL Server esteja em execução. Na verdade, na maioria dos casos, recomendamos que você use SQLIOSim quando SQL Server não estiver em execução para evitar a concorrência 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 SQL Server reais no teste SQLIOSim porque 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 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 de 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 nem garante a segurança ou integridade dos dados. O utilitário foi projetado para fornecer testes de linha de base de um ambiente do sistema. O utilitário SQLIOSim pode expor possíveis problemas de integridade de dados.

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

Se você precisar fazer testes de benchmark de desempenho e quiser determinar a capacidade de taxa de transferência de E/S do sistema de armazenamento, use a ferramenta Diskspd .

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

Localização do SQLIOSim

No passado, o SQLIOSim foi enviado como um pacote de download separado. Começando com SQL Server 2008, o SQLIOSim está incluído na instalação do produto SQL Server. Ao instalar 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 de simulação de E/S idênticos.

  • 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 de ambos os métodos.
  • SQLIOSim.exe é um aplicativo GUI (gráfico) 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 DO SQLIOSim .

Usar SQLIOSim em um computador sem SQL Server

Recomendamos que você use SQLIOSim para um teste estendido em um computador antes de instalar SQL Server. Use-o para testar o subsistema de E/S em que 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 SQL Server está instalado e executar os testes antes de uma instalação SQL Server. Copie SQLIOSim.com, SQLIOSim.exee, opcionalmente, um ou mais arquivos de configuração se você planeja usar configurações pré-configuradas. Em seguida, execute a simulação de teste nesse computador.

Como usar o SQLIOSim

Você não precisa do serviço SQL Server em execução enquanto executa o SQLIOSim. Na verdade, recomendamos que você não execute 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 SQL Server reais para teste. O utilitário SQLIOSim substituirá os dados com padrões de teste aleatórios e seus dados reais de 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 GUI

  1. Acesse C:\Program Files\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 corresponder às suas necessidades de configuração.

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

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

  4. Modifique as configurações do arquivo alterando sua localização, tamanho, tamanho máximo ou incremento. Mantenha o Arquivo de Log desmarcado conforme você 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 habilitada. Selecione Aplicar quando terminar.

    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ê poderá 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. Depois de estar satisfeito com sua configuração, selecione o botão OK .

  8. Selecione Simulador>Iniciar para executar a simulação de IO 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 File1 seções e File2 e modificando os FileName valores para novos 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 comutadores

Você pode testar vários volumes de disco ao mesmo tempo usando a opção -dir . 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çãosqliosim.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 arquivo de configuração padrãoSqliosim.cfg.ini. O utilitário SQLIOSim retornará um erro se o utilitário não conseguir localizar 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 erro e o caminho do arquivo de log de erro. O nome do arquivo padrão é Sqliosim.log.xml.
-dirDir Defina o local para criar o arquivo de dados (.mdf) e o arquivo 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 main. 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 SQLIOSim

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

Arquivos de configuração de exemplo para vários testes podem ser baixados do repositório GitHub da equipe de suporte 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 receberã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 exemplo

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 – Minimizar leituras

- Os arquivos são 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 - Remover limitação de E/S

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

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

- Os arquivos são não encolhidos

- 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 - Usar apenas 32 MB de memória

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

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

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

- Criar um fluxo esparso secundário não inafundá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

Ressalvas sobre valores de parâmetro

  • Se o nome do parâmetro indicar que o parâmetro é uma razão ou uma porcentagem, o valor do parâmetro será expresso como o percentual ou a razão dividida por 0,01. Por exemplo, o valor do CacheHitRatio parâmetro é 10 percent. Esse valor é expresso como 1000 porque 10 divididos por 0,01 é igual a 1000. O valor máximo de um parâmetro percentual é 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 serão true e false. Além disso, os valores são sensíveis a casos. O utilitário SQLIOSim ignora todos os 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 deverá exceder o valor máximo. Por exemplo, o valor do MinIOChainLength parâmetro não deve ser maior que o valor do MaxIOChainLength parâmetro.
  • Se o parâmetro indicar várias páginas, o utilitário SQLIOSim verificará o valor atribuído ao parâmetro no arquivo que o utilitário SQLIOSim processa. O utilitário SQLIOSim executa esse marcar para garantir que o número de páginas não exceda o tamanho do arquivo.

Seções de arquivo de configuração

Há 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 de tipo XML
CPUCount Número de CPUs no computador Número de CPUs lógicas para criar O máximo é 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 pool de buffers no MB O valor não pode exceder a quantidade total de memória física no computador.
StopOnError verdadeiro Interrompe a simulação quando o primeiro erro ocorre
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 o passe de auditoria no final do ciclo
CacheHitRatio 1000 Taxa de acerto de cache simulada quando o utilitário SQLIOSim lê no 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 0 significa que até aproximadamente 140.000 operações de E/S são permitidas. Esse é o limite do utilitário.
TargetIODuration 100 Duração das operações de E/S, em milissegundos, que são direcionadas por 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 verdadeiro Permitir desativar a limitação para postar muitas solicitações de E/S As explosões de E/S são habilitadas durante a atualização inicial, o ponto de verificação inicial e as passagens de ponto de verificação final no final dos ciclos de teste. O MaxOutstandingIO parâmetro ainda está honrado. Você pode esperar avisos de E/S longos.
NoBuffering verdadeiro Usar a opção FILE_FLAG_NO_BUFFERING SQL Server abre arquivos de banco de dados usando FILE_FLAG_NO_BUFFERING == true. Alguns utilitários e serviços, como o Analysis Services, usam FILE_FLAG_NO_BUFFERING == false. Para testar totalmente um servidor, execute um teste para cada configuração.
WriteThrough verdadeiro Usar a opção FILE_FLAG_WRITE_THROUGH SQL Server abre arquivos de banco de dados usando FILE_FLAG_WRITE_THROUGH == true. No entanto, alguns utilitários e serviços abrem os arquivos de banco de dados usando FILE_FLAG_WRITE_THROUGH == false. 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 verdadeiro Usar ReadScatter ou WriteGather APIs Se esse parâmetro for definido como true, o NoBuffering parâmetro também será definido como true.

SQL Server usa E/S de dispersão/coleta para a maioria das solicitações de E/S.
ForceReadAhead verdadeiro Executar uma operação de leitura antecipada mesmo se os dados já estiverem lidos O utilitário SQLIOSim emite o comando de leitura mesmo que a página de dados já esteja no pool de buffers.

O Suporte de SQL Server da Microsoft usou com êxito a configuração verdadeira para expor problemas de E/S.
DeleteFilesAtStartup verdadeiro Excluir arquivos na inicialização se houver arquivos Um arquivo pode conter vários fluxos de dados. Somente fluxos especificados na File <N> FileName entrada são truncados no arquivo. Se o fluxo padrão for especificado, todos os fluxos serão excluídos.
DeleteFilesAtShutdown falso Excluir arquivos após a conclusão do teste Um arquivo pode conter vários fluxos de dados. Somente os fluxos de dados especificados na File <N> FileName 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 falso 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.

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

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

Seção Arquivo<N>

O utilitário SQLIOSim foi projetado para permitir vários testes de arquivo. 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 Nome e caminho 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.

NOTA Em SQL Server 2005, as operações DBCC usam fluxos. Recomendamos que você execute testes de fluxo.
InitialSize Nenhum valor padrão Tamanho inicial no 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 no MB Um arquivo não pode crescer mais do que o valor que você especifica para o MaxSize parâmetro.
Increment 0 Tamanho no MB do incremento pelo qual o arquivo cresce ou diminui. Para obter mais informações, confira 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 encolhível.
Shrinkable falso Indica se o arquivo pode ser reduzido ou expandido Se você definir o Increment parâmetro como 0, você definirá o arquivo como não encolhível. Nesse caso, você deve definir o Shrinkable parâmetro como false. Se você definir o Increment parâmetro como um valor diferente de 0, você definirá o arquivo como recolhível. Nesse caso, você deve definir o Shrinkable parâmetro como true.
Sparse falso Indica se o atributo Esparso deve ser definido nos arquivos Para arquivos existentes, o utilitário SQLIOSim não limpa o atributo Esparso quando você define o Sparse parâmetro como false.

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

Recomendamos habilitar o arquivo esparso e os fluxos e, em seguida, executar um teste.

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

Erro:-=====Error: 0x80070467
Texto de 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 na página C:\SQLIOSim.mdx: 28097
LogFile falso Indica se um arquivo contém dados de log de usuário ou transação 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 SQL Server trabalho que está executando operações de consulta aleatórias, como padrões de E/S de Processamento de Transações Online (OLTP).

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órios. Um valor de -1 significa que você deve usar a configuração automática do valor: min(CPUCount*2, 8).
NOTA 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 exibição sys.dm_exec_requests de gerenciamento dinâmico (DMV) como uma linha de base para estabelecer esse valor de parâmetro de teste.

CPUCount aqui refere-se 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 em páginas
MaxIOChainLength 100 Tamanho máximo da região em páginas SQL Server 2005 Edição Enterprise e SQL Server 2000 Edição Enterprise 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 pequenas operações de verificação ocorram. Use os valores especificados na ReadAheadUser seção para simular operações de verificação maiores.
RandomUserReadWriteRatio 9000 Percentual 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 em 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 encaixe uniformemente no 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 ocorrer uma operação na memória que faça com que uma operação de reversão ocorra. Quando essa operação de reversão ocorre, 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 que o valor do UserCount parâmetro seja 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órios. Um valor de -1 significa que você deve usar a configuração automática do valor: min(CPUCount*2, 8).
NOTA 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 em relação ao sys.dm_exec_requests DMV como uma linha de base para estabelecer esse valor de parâmetro de teste.

CPUCount aqui refere-se 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 Aplicar o parâmetro AuditDelay após a conclusão do número de ciclos BuffersValidated
AuditDelay 200 Número de milissegundos para aguardar após cada DelayAfterCycles operação

Seção ReadAheadUser

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

Parâmetro Valor padrão Descrição Comments
UserCount 2 Número de threads com antecedência de leitura 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órios. Um valor de -1 significa que você deve usar a configuração automática do seguinte valor: min(CPUCount*2, 8).
NOTA 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 em relação ao sys.dm_exec_requests DMV como uma linha de base para estabelecer esse valor de parâmetro de teste.

CPUCount aqui refere-se 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 para ler 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 para ler por ciclo SQL Server Enterprise edições podem ler até 1.024 páginas em uma única solicitação. Se você instalar SQL Server em um computador com muitos recursos de CPU, memória e disco, recomendamos aumentar o tamanho do arquivo e o tamanho da leitura antecipada.
DelayAfterCycles 2 Aplicar o RADelay parâmetro após a conclusão do número especificado de ciclos
RADelay 200 Número de milissegundos para aguardar após cada DelayAfterCycles operação

Seção BulkUpdateUser

O utilitário SQLIOSim usa os valores especificados na seção para simular operações em BulkUpdateUser 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).
NOTA 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 em relação ao sys.dm_exec_requests DMV como uma linha de base para estabelecer esse valor de parâmetro de teste.

CPUCount aqui refere-se 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 Aplicar o BUDelay parâmetro após a conclusão do número especificado de ciclos
BUDelay 10 Número de milissegundos para aguardar 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 do 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 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 ponto-e-vírgula (;) no início de uma linha no arquivo de configuração.ini 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 SQL Server gera em seu arquivo de dados e em seu arquivo de log. O utilitário SQLIOSim não usa o mecanismo SQL Server para executar a atividade de estresse. Portanto, você pode usar o utilitário SQLIOSim para testar um computador antes de instalar SQL Server.

Ao executar o utilitário SQLIOSim, especifique o mesmo local de arquivo que você usa para seus arquivos de banco de dados SQL Server. Quando você faz isso, o utilitário simula o mesmo caminho de E/S que seu banco de dados SQL Server.

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

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

Aviso

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

Log e tratamento de erros do SQLIOSim

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

  • O local que você especifica no parâmetro de inicialização de log
  • O local que você especifica na ErrorFile= linha no arquivo Sqliosim.cfg.ini

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

Observação

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

Várias cópias

O utilitário SQLIOSim acomoda testes em nível de arquivos múltiplos e testes em nível de usuário múltiplo. 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 a simulação de ponto de verificação, podem ser intensivas em memória e podem criar condições fora da memória quando você executa várias cópias. Se você tiver erros fora da memória, poderá reduzir o número de cópias de utilitário em execução.

Referências