Usare l'utilità SQLIOSim per simulare l'attività di SQL Server in un sottosistema del disco

Versione originale del prodotto: SQL Server
Numero KB originale: 231619

Sommario

Lo strumento SQLIOSim esegue test di affidabilità e stress di integrità nei sottosistemi del disco simulando Microsoft SQL Server modelli di I/O. Questi test includono attività di lettura, scrittura, checkpoint, backup, ordinamento e pre-lettura. Usare SQLIOSim per convalidare il sottosistema di I/O prima di distribuire SQL Server in un nuovo hardware. Lo strumento funziona indipendentemente dal motore di SQL Server e non richiede l'esecuzione di SQL Server.

Introduzione a SQLIOSim

SQLIOSim simula i modelli di lettura e scrittura (letture di pagina, checkpoint, backup, ordinamento, read-ahead) di un sistema di SQL Server per identificare potenziali problemi di I/O. L'obiettivo principale dei test di simulazione di I/O consiste nel verificare l'affidabilità del sottosistema di I/O sottostante prima che SQL Server inizi a usarlo. Per altre informazioni sui concetti fondamentali sulle operazioni di I/O SQL Server, vedere SQL Server I/O fundamentals.

SQLIOSim non interagisce con SQL Server e non richiede l'esecuzione di SQL Server. Nella maggior parte dei casi, eseguire SQLIOSim quando SQL Server non è in esecuzione per evitare la concorrenza per la velocità effettiva di I/O tra le due applicazioni.

Avviso

Non puntare o usare file di database SQL Server reali nel test con SQLIOSim perché lo strumento usa modelli di test casuali che sovrascrivono i file.

SQLIOSim non garantisce la sicurezza o l'integrità dei dati. Lo strumento fornisce test di base di un ambiente di sistema e potrebbe esporre potenziali problemi di integrità dei dati.

Per altre informazioni sulla registrazione e l'archiviazione dei dati, vedere Descrizione degli algoritmi di registrazione e archiviazione dei dati che estendono l'affidabilità dei dati in SQL Server.

Se è necessario eseguire benchmark delle prestazioni e determinare la capacità di velocità effettiva di I/O, usare invece lo strumento Diskspd .

Tip

Eseguire SQLIOSim in ogni nuova configurazione di archiviazione prima della distribuzione di produzione. Questo test consente di assicurarsi che il sistema rispetta la semantica di ordine di scrittura e scaricamento anche se sono presenti livelli di memorizzazione nella cache. Tali livelli includono cache del controller, buffering del firmware e ottimizzazioni SAN.

Percorso SQLIOSim

SQLIOSim era disponibile in precedenza come pacchetto di download separato. A partire da Microsoft SQL Server 2008, SQLIOSim è incluso nell'installazione del prodotto SQL Server. Quando si installa SQL Server, si trova lo strumento SQLIOSim nella cartella Binn dell'installazione di SQL Server. Usare questa versione aggiornata dello strumento per simulare l'attività di I/O nel sottosistema del disco.

Il pacchetto SQLIOSim include tre file. La cartella Binn contiene due file eseguibili, SQLIOSim.com e SQLIOSim.exe. Entrambi i file eseguibili offrono funzionalità di simulazione di I/O identiche.

  • SQLIOSim.com è uno strumento da riga di comando. È possibile configurarlo per l'esecuzione senza interazione dell'utente usando i parametri della riga di comando, un file di configurazione o una combinazione di entrambi i metodi.
  • SQLIOSim.exe è un'applicazione grafica (GUI) che non accetta parametri della riga di comando. Tuttavia, SQLIOSim.exe carica i dati di configurazione predefiniti dai file di configurazione.
  • Usare i file di configurazione per automatizzare la simulazione di I/O usando SQLIOSim. Per altre informazioni, vedere la sezione file di configurazione SQLIOSim.

Usare SQLIOSim in un computer senza SQL Server

Eseguire SQLIOSim per un test esteso in un computer prima di installare SQL Server. Usarlo per testare il sottosistema di I/O in cui si prevede di inserire i file di dati e di log e di verificarne l'affidabilità. A tale scopo, copiare i file SQLIOSim da un computer in cui è installato SQL Server ed eseguire i test prima di installare SQL Server. Copiare SQLIOSim.com, SQLIOSim.exe e, facoltativamente, uno o più file di configurazione se si prevede di usare le impostazioni preconfigurate. Esegui quindi la simulazione di test sul computer.

Come usare SQLIOSim

Non è necessario eseguire il servizio SQL Server durante l'esecuzione di SQLIOSim. In effetti, non eseguire SQL Server mentre SQLIOSim è in esecuzione perché le applicazioni possono competere per le risorse di I/O.

Avviso

Per evitare di perdere i dati SQL Server effettivi, non specificare i file di database SQL Server effettivi per il test. Lo strumento SQLIOSim sovrascrive i dati usando modelli di test casuali.

Gli esempi seguenti illustrano come eseguire SQLIOSim usando l'interfaccia utente grafica e la riga di comando.

Esempio 1: Usare l'interfaccia utente grafica

  1. Passare a C:\Program Files\Microsoft SQL Server\MSSQLXX.<InstanceName>\MSSQL\Binn.

  2. Avviare l'applicazione SQLIOSIM.EXE .

  3. Cercare nella finestra File e configurazione le impostazioni predefinite che è possibile modificare in base alle esigenze di configurazione.

    Screenshot che mostra la configurazione del file.

  4. Selezionare il primo file mdx nell'elenco C:\temp\sqliosim\sqliosim.mdx. Questo file è l'equivalente di un file di dati.

  5. Modificare le impostazioni del file, ad esempio il percorso dei file, le dimensioni, le dimensioni massime o l'incremento. Mantenere deselezionata l'opzione File di log perché si vuole simulare un file di dati. Selezionare quindi Applica.

    Screenshot che mostra la configurazione del file di dati.

    L'esempio mostra che il percorso del file viene modificato in D:\temp\sqliosim\sqliosim.mdx, la dimensione è impostata su 2048 MB, la dimensione massima è impostata su 4096 MB e le dimensioni di incremento sono impostate su 64 MB.

  6. Modificare il secondo file, quello con il suffisso ldx . Questo file rappresenta l'equivalente di un file di log delle transazioni. Assicurarsi che l'opzione File di log rimanga selezionata. Al termine, selezionare Applica.

    Screenshot della configurazione del file di log.

  7. Aggiungere altri file all'elenco selezionando l'opzione Nuovo file al centro della schermata all'interno della griglia tabulare. Digitare il percorso del file e quindi impostare le opzioni rimanenti. Al termine, selezionare Applica. Di seguito è riportato un esempio.

    Screenshot dell'aggiunta di un nuovo file di test.

  8. Quando si è soddisfatti della configurazione, selezionare OK.

  9. Per eseguire la simulazione di I/O SQL, selezionare SimulatorStart (Avvio>). In alternativa, selezionare F12 o il pulsante all'estrema sinistra che contiene un cerchio verde.

    Screenshot che mostra un'istanza di SQLIOSim in esecuzione.

  10. Attendere il completamento della simulazione e quindi esaminare l'output.

Esempio 2: Usare uno strumento da riga di comando e un file di configurazione

  1. Modificare il file sqliosim.default.cfg.ini . Rimuovere i commenti per le sezioni File1 e File2 e modificare i valori FileName con nuovi file SQLIOSim. Ad esempio:

    [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. Eseguire SQLIOSIM.COM usando il file di configurazione C:\temp\sqliosimconfig\sqliosim.default.cfg.ini:

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

Esempio 3: Usare uno strumento da riga di comando con interruttori

È possibile testare più volumi di disco contemporaneamente usando l'opzione -dir . L'esempio seguente crea 500 MB di file ed esegue il test per 300 secondi (cinque minuti):

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

Esempio 4: Utilizzare uno strumento da riga di comando per gestire più unità

L'esempio seguente crea file da 32 GB ed esegue il test per 600 secondi (10 minuti) usando il file di configurazione 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 parametri della riga di comando

SQLIOSIM.COM accetta un numero limitato di parametri della riga di comando per controllare il comportamento di base. Il file di configurazione per lo strumento SQLIOSim fornisce un controllo del comportamento avanzato. Se i parametri della riga di comando e le opzioni del file di configurazione si sovrappongono, i parametri della riga di comando hanno la precedenza.

Parametro Descrizione
-cfg File Eseguire l'override del file di configurazione predefinito Sqliosim.cfg.ini. Lo strumento SQLIOSim genera un errore se non riesce a trovare il file.
-save File Salvare la configurazione risultante nel file di configurazione. Usare questa opzione per creare il file di configurazione iniziale.
-log File Specificare il nome del file del log degli errori e il percorso del file del log degli errori. Il nome file predefinito è Sqliosim.log.xml.
-dir Dir Impostare il percorso per creare il file di dati (.mdf) e il file di log (.ldf). È possibile eseguire questo comando più volte. Nella maggior parte dei casi, questa posizione è la radice di un'unità o un punto di montaggio di un volume. Questa posizione può essere un percorso lungo o un percorso UNC.
-d Secondi Impostare la durata dell'esecuzione principale. Questo valore esclude la fase di preparazione e la fase di verifica.
-size MB Impostare le dimensioni iniziali del file di dati in megabyte (MB). Il file può aumentare fino a due volte le dimensioni iniziali. Le dimensioni del file di log sono calcolate come metà delle dimensioni del file di dati. Tuttavia, il file di log non può essere maggiore di 50 MB.

File di configurazione di SQLIOSim

Usare un file di configurazione insieme a SQLIOSim per scegliere tutte le impostazioni per la simulazione di I/O in anticipo. Questo file di configurazione consente di automatizzare le esecuzioni di SQLIOSim.

È possibile scaricare i file di configurazione di esempio per vari test dal repository GitHub.

Non è necessario usare un file di configurazione. Se non si usa un file di configurazione, tutti i parametri accettano valori predefiniti tranne il percorso del file di dati e il percorso del file di log. Per specificare il percorso del file di dati e il percorso del file di log, è necessario usare uno dei metodi seguenti:

  • Usare i parametri della riga di comando nel file SQLIOSIM.COM .
  • Usare la finestra di dialogo File e configurazione dopo aver eseguito il file SQLIOSim.exe .
  • Utilizzare la sezione File<N> del file di configurazione.

File di configurazione di esempio

Usare questi cinque file di configurazione di esempio per le esecuzioni automatizzate di SQLIOSim.

File di esempio Descrizione Parametri diversi dal file di configurazione predefinito
sqliosim.default.cfg.ini
sqliosim.hwcache.cfg.ini - Riduce al minimo le letture

- Mantiene i file di piccole dimensioni per conservarli completamente in memoria

- Nessuna lettura sequenziale
Per la sezione AuditUser e per la sezione ReadAheadUser :

CacheHitRatio=10000
UserCount=0
sqliosim.nothrottle.cfg.ini - Rimuove la limitazione della velocità di I/O

- Riduce al minimo il tempo di attesa per aumentare il volume di I/O
TargetIODuration=1000000
AuditDelay=10
RADelay=10
sqliosim.seqwrites.cfg.ini - Riduce al minimo le letture

- Mantiene i file di piccole dimensioni per conservarli completamente in memoria

- Rende i file non compattabili

- Nessuna lettura sequenziale

- Nessun accesso casuale

- Aggiornamento in blocco di grandi blocchi senza ritardi
Shrinkable=FALSE

Per le sezioni AuditUser, ReadAheadUser e RandomUser:

CacheHitRatio=10000
ForceReadAhead=FALSE
BuffersBUMin=600
BuffersBUMax=1000
BUDelay=1
UserCount=0
sqliosim.sparse.cfg.ini - Usa solo 32 MB di memoria

- Rende la durata di I/O di destinazione sufficientemente grande per abilitare molte richieste di I/O in sospeso

- Disabilita le API a dispersione/raccolta per inviare richieste di I/O separate per ogni pagina di 8 KB

- Crea un file non compattabile da 1 GB

- Crea un flusso secondario sparse da 1 GB non riducibile nel file
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

Avvertenze sui valori dei parametri

  • Se il nome del parametro indica che il parametro è un rapporto o una percentuale, il valore del parametro viene espresso come percentuale o il rapporto diviso per 0,01. Ad esempio, il valore del CacheHitRatio parametro è 10 percent. Questo valore è espresso come 1000 perché 10 diviso per 0,01 è uguale a 1000. Il valore massimo di un parametro percentage è 10000.
  • Se il tipo di parametro è numerico e si assegna un valore non numerico al parametro , lo strumento SQLIOSim imposta il parametro su 0.
  • Se il tipo di parametro è booleano, i valori validi che è possibile assegnare al parametro sono true e false. Inoltre, i valori fanno distinzione tra maiuscole e minuscole. Lo strumento SQLIOSim ignora tutti i valori non validi.
  • Se una coppia di parametri indica un valore minimo e un valore massimo, il valore minimo non deve superare il valore massimo. Ad esempio, il valore del MinIOChainLength parametro non deve essere maggiore del valore del MaxIOChainLength parametro .
  • Se il parametro indica un numero di pagine, lo strumento SQLIOSim controlla il valore assegnato al parametro rispetto al file elaborato dallo strumento SQLIOSim. Lo strumento SQLIOSim esegue questo controllo per assicurarsi che il numero di pagine non superi le dimensioni del file.

Sezioni del file di configurazione

Il file di configurazione contiene diverse sezioni:

Ogni sezione di configurazione è descritta nella sezione seguente.

Sezione CONFIG

Lo strumento SQLIOSim usa i valori specificati nella sezione CONFIG del file di configurazione SQLIOSim per stabilire il comportamento di test globale.

Parametro Valore predefinito Descrizione Commenti
ErrorFile sqliosim.log.xml Nome del file di log di tipo XML
CPUCount Numero di CPU nel computer Numero di CPU logiche da creare Il valore massimo è 64 CPU.
Affinity 0 Maschera di affinità CPU fisica da applicare per le CPU logiche La maschera di affinità deve trovarsi all'interno della maschera CPU attiva. Un valore 0 indica che vengono usate tutte le CPU disponibili.
MaxMemoryMB Memoria fisica disponibile all'avvio dello strumento SQLIOSim Dimensioni del pool di buffer in MB Il valore non può superare la quantità totale di memoria fisica nel computer.
StopOnError true Arresta la simulazione quando si verifica il primo errore
TestCycles 1 Numero di cicli di test completi da eseguire Un valore di 0 indica un numero infinito di cicli di test.
TestCycleDuration 300 Durata di un ciclo di test in secondi, escluso il passaggio di controllo alla fine del ciclo
CacheHitRatio 1000 Percentuale di successo della cache simulata durante la lettura dal disco da parte dello strumento SQLIOSim
MaxOutstandingIO 0 Numero massimo di operazioni di I/O in sospeso consentite a livello di processo Il valore non può superare 140.000. Un valore 0 indica che sono consentite fino a circa 140.000 operazioni di I/O. Questo è il limite dello strumento.
TargetIODuration 100 Durata delle operazioni di I/O, in millisecondi, mirata dalla limitazione Se la durata media di I/O supera la durata di I/O di destinazione, lo strumento SQLIOSim limita il numero di operazioni di I/O in sospeso per ridurre il carico e migliorare il tempo di completamento di I/O.
AllowIOBursts true Permetti la disattivazione della limitazione per effettuare molte richieste di I/O I burst di I/O vengono abilitati durante l'aggiornamento iniziale, il checkpoint iniziale e il passaggio finale del checkpoint alla fine dei cicli di test. Il MaxOutstandingIO parametro è ancora rispettato. È possibile aspettarsi lunghi avvertimenti di I/O.
NoBuffering true Usare l'opzione FILE_FLAG_NO_BUFFERING SQL Server apre i file di database usando FILE_FLAG_NO_BUFFERING == true. Alcune utilità e servizi, ad esempio Analysis Services, usano FILE_FLAG_NO_BUFFERING == false. Per testare completamente un server, eseguire un test per ogni impostazione.
WriteThrough true Usare l'opzione FILE_FLAG_WRITE_THROUGH SQL Server apre i file di database usando FILE_FLAG_WRITE_THROUGH == true. Tuttavia, alcuni strumenti e servizi aprono i file di database usando FILE_FLAG_WRITE_THROUGH == false. Ad esempio, SQL Server Analysis Services apre i file di database usando FILE_FLAG_WRITE_THROUGH == false. Per testare completamente un server, eseguire un test per ogni impostazione.
ScatterGather true Usate gli ReadScatter o WriteGather API Se si imposta questo parametro su true, il NoBuffering parametro viene impostato anche su true.

SQL Server usa l'I/O a dispersione/raccolta per la maggior parte delle richieste di I/O.
ForceReadAhead true Eseguire un'operazione read-ahead anche se i dati sono già letti. Lo strumento SQLIOSim genera il comando read anche se la pagina dei dati è già presente nel pool di buffer.

Il supporto di Microsoft SQL Server ha usato correttamente l'impostazione true per esporre problemi di I/O.
DeleteFilesAtStartup true Eliminare i file all'avvio se esistono file Un file può contenere più flussi di dati. Solo i flussi specificati nella File <N> FileName voce vengono troncati nel file. Se viene specificato il flusso predefinito, vengono eliminati tutti i flussi.
DeleteFilesAtShutdown falso Eliminare i file al termine del test Un file può contenere più flussi di dati. Solo i flussi di dati specificati nella File <N> FileName voce vengono troncati nel file. Se viene specificato il flusso di dati predefinito, lo strumento SQLIOSim elimina tutti i flussi di dati.
StampFiles falso Espandere il file stampando zeri Questo processo può richiedere molto tempo se il file è di grandi dimensioni. Se si imposta questo parametro su false, lo strumento SQLIOSim estende il file impostando un marcatore di dati valido.

SQL Server 2005 usa la funzionalità di inizializzazione immediata dei file per i file di dati. Se il file di dati è un file di log o se l'inizializzazione immediata dei file non è abilitata, SQL Server esegue zero stamping. Le versioni di SQL Server precedenti a SQL Server 2000 eseguono sempre lo stamping zero.

È consigliabile cambiare il valore del parametro StampFiles durante il test per assicurarsi che l'inizializzazione immediata dei file e la marcatura zero funzionino correttamente.

Sezione File<N>

Lo strumento SQLIOSim è progettato per consentire più test di file. La File<N> sezione è rappresentata come [File1], [File2] per ogni file nel test.

Parametro Valore predefinito Descrizione Commenti
FileName Nessun valore predefinito Nome file e percorso Il FileName parametro può essere un percorso lungo o un percorso UNC. Può anche includere un nome e un tipo di flusso secondario. Ad esempio, il FileName parametro può essere impostato su file.mdf:stream2.

NOTA In SQL Server 2005 le operazioni DBCC usano flussi. I test di flusso sono fortemente consigliati.
InitialSize Nessun valore predefinito Dimensioni iniziali in MB Se il file esistente è maggiore del valore specificato per il InitialSize parametro, lo strumento SQLIOSim non compatta il file esistente. Se il file esistente è più piccolo, lo strumento SQLIOSim espande il file esistente.
MaxSize Nessun valore predefinito Dimensioni massime in MB Un file non può aumentare di dimensioni superiori al valore specificato per il MaxSize parametro.
Increment 0 Dimensioni in MB dell'incremento con cui il file aumenta o diminuisce. Per altre informazioni, vedere la ShrinkUser sezione di questo articolo. Lo strumento SQLIOSim regola il parametro all'avvio Increment in modo che venga stabilita la situazione: Increment * MaxExtents < MaxMemoryMB / NumberOfDataFiles.
Se il valore di Increment è 0, lo strumento SQLIOSim imposta il file come non compattabile.
Shrinkable falso Indica se il file può essere ridotto o espanso Se imposti il parametro Increment su 0, rendi il file non comprimibile. In questo caso, è necessario impostare il Shrinkable parametro su false. Se si imposta il Increment parametro su un valore diverso da 0, impostare il file in modo che sia compattabile. In questo caso, è necessario impostare il Shrinkable parametro su true.
Sparse falso Indica se l'attributo Sparse deve essere impostato nei file Per i file esistenti, lo strumento SQLIOSim non cancella l'attributo Sparse quando si imposta il Sparse parametro su false.

SQL Server 2005 usa file sparse per supportare i database snapshot e i flussi DBCC secondari.

Abilitare sia il file sparse che i flussi e quindi eseguire un test pass.

NOTA Se si imposta Sparse = true per le impostazioni del file, non specificare NoBuffering = false nella config sezione . Se si usano queste due combinazioni in conflitto, è possibile che venga visualizzato un messaggio di errore simile al seguente dallo strumento:

Errore:-=====Errore: 0x80070467
Testo errore: durante l'accesso al disco rigido, un'operazione su disco è fallita anche dopo diversi tentativi.
Descrizione: Convalida del buffer non riuscita nella pagina C:\SQLIOSim.mdx: 28097
LogFile falso Indica se un file contiene dati utente o di log delle transazioni. Definire almeno un file di log.

Sezione RandomUser

Lo strumento SQLIOSim usa i valori specificati nella sezione RandomUser per simulare un ruolo di lavoro SQL Server che esegue operazioni di query casuali, ad esempio modelli di I/O OLTP (Online Transaction Processing).

Parametro Valore predefinito Descrizione Commenti
UserCount -1 Numero di thread di accesso casuali in esecuzione contemporaneamente Il valore non può superare il valore : CPUCount*1023-100.
Anche il numero totale di tutti gli utenti non può superare questo valore. Un valore pari a zero (0) indica che non è possibile creare utenti ad accesso casuale. Un valore di -1 significa che si deve utilizzare la configurazione automatica del valore min(CPUCount*2, 8).
NOTE Un sistema di SQL Server può avere migliaia di sessioni. La maggior parte delle sessioni non ha richieste attive. Usare la funzione count(*) nelle query sulla sys.dm_exec_requests DMV (Dynamic Management View) come base di riferimento per stabilire questo valore del parametro di test.

CPUCount qui fa riferimento al valore del CPUCount parametro nella CONFIG sezione .

Il min(CPUCount*2, 8) valore restituisce il minore dei valori tra CPUCount*2 e 8.
JumpToNewRegionPercentage 500 La possibilità di passare a una nuova area del file L'inizio dell'area è selezionato in modo casuale. Le dimensioni dell'area sono un valore casuale tra il valore del MinIOChainLength parametro e il valore del MaxIOChainLength parametro .
MinIOChainLength 1 Dimensioni minime dell'area nelle pagine
MaxIOChainLength 100 Dimensioni massime dell'area nelle pagine SQL Server 2005 edizione Enterprise e SQL Server 2000 edizione Enterprise possono leggere fino a 1.024 pagine.

Il valore minimo è 0. Il valore massimo è limitato dalla memoria di sistema.

In genere, l'attività utente casuale causa piccole operazioni di analisi. Usare i valori specificati nella ReadAheadUser sezione per simulare operazioni di analisi più grandi.
RandomUserReadWriteRatio 9000 Percentuale di pagine da aggiornare Una catena di lunghezza casuale viene selezionata nell'area e può essere letta. Questo parametro definisce la percentuale delle pagine da aggiornare e scrivere su disco.
MinLogPerBuffer 64 Dimensione minima del record di log in byte Il valore deve essere un multiplo delle dimensioni del settore su disco o una dimensione adatta in modo uniforme alle dimensioni del settore su disco.
MaxLogPerBuffer 8192 Dimensione massima del record di log in byte Questo valore non può superare 64.000. Il valore deve essere un multiplo delle dimensioni del settore su disco.
RollbackChance 100 La possibilità che si verifichi un'operazione in memoria che causa l'esecuzione di un'operazione di rollback. Quando si verifica questa operazione di rollback, SQL Server non scrive nel file di log.
SleepAfter 5 Tempo di sospensione dopo ogni ciclo, in millisecondi

Sezione AuditUser

Lo strumento SQLIOSim utilizza i valori specificati nella sezione AuditUser per simulare l'attività DBCC e per leggere e verificare le informazioni sulla pagina. La convalida viene eseguita anche se il valore del UserCount parametro è impostato su 0.

Parametro Valore predefinito Descrizione Commenti
UserCount 2 Numero di thread di controllo Il valore non può superare il valore seguente: CPUCount*1023-100.
Anche il numero totale di tutti gli utenti non può superare questo valore. Un valore di 0 significa che non è possibile creare utenti con accesso casuale. Un valore di -1 significa che si deve utilizzare la configurazione automatica del valore min(CPUCount*2, 8).
NOTE Un SQL Server sistema ha migliaia di sessioni. La maggior parte delle sessioni non ha richieste attive. Usare la funzione count(*) nelle query sulla sys.dm_exec_requests DMV come linea di base per stabilire questo valore del parametro di test.

CPUCount qui fa riferimento al valore del CPUCount parametro nella CONFIG sezione .

Il min(CPUCount*2, 8) valore produce il minore dei valori tra CPUCount*2 e 8.
BuffersValidated 64
DelayAfterCycles 2 Applicare il parametro AuditDelay dopo il completamento del numero di cicli BuffersValidated
AuditDelay 200 Numero di millisecondi di attesa dopo ogni DelayAfterCycles operazione

Sezione ReadAheadUser

Lo strumento SQLIOSim accetta i valori specificati nella sezione ReadAheadUser per simulare l'attività di lettura anticipata di SQL Server. SQL Server sfrutta l'attività read-ahead per ottimizzare le funzionalità di I/O asincrone e limitare i ritardi delle query.

Parametro Valore predefinito Descrizione Commenti
UserCount 2 Numero di thread read-ahead Il valore non può superare il valore seguente: CPUCount*1023-100.
Anche il numero totale di tutti gli utenti non può superare questo valore. Un valore di 0 significa che non è possibile creare utenti con accesso casuale. Un valore di -1 significa che devi usare la configurazione automatica del seguente valore: min(CPUCount*2, 8).
NOTA Un sistema SQL Server può avere migliaia di sessioni. La maggior parte delle sessioni non ha richieste attive. Usare la funzione count(*) nelle query sulla sys.dm_exec_requests DMV come linea di base per stabilire questo valore del parametro di test.

CPUCount qui si riferisce al valore del CPUCount parametro nella sezione CONFIG.

Il min(CPUCount*2, 8) valore restituisce il minore dei valori tra CPUCount*2 e 8.
BuffersRAMin 32 Numero minimo di pagine da leggere per ciclo Il valore minimo è 0. Il valore massimo è limitato dalla memoria di sistema.
BuffersRAMax 64 Numero massimo di pagine da leggere per ciclo Le edizioni di SQL Server Enterprise possono leggere fino a 1.024 pagine in una singola richiesta. Quando si installa SQL Server su un computer con molte risorse di CPU, memoria e disco, aumentare le dimensioni del file e le dimensioni di lettura anticipata.
DelayAfterCycles 2 Applicare il RADelay parametro dopo il completamento del numero specificato di cicli
RADelay 200 Numero di millisecondi di attesa dopo ogni DelayAfterCycles operazione

Sezione BulkUpdateUser

Lo strumento SQLIOSim accetta i valori specificati nella sezione BulkUpdateUser per simulare operazioni in blocco, ad esempio operazioni SELECT...INTO e operazioni BULK INSERT.

Parametro Valore predefinito Descrizione Commenti
UserCount -1 Numero di BULK UPDATE thread Il valore non può superare il valore seguente: CPUCount*1023-100
Un valore di -1 significa che è necessario usare la configurazione automatica del valore seguente: min(CPUCount*2, 8).
NOTA Un sistema SQL Server può avere migliaia di sessioni. La maggior parte delle sessioni non ha richieste attive. Usare la funzione count(*) nelle query sulla sys.dm_exec_requests DMV come linea di base per stabilire questo valore del parametro di test.

CPUCount qui fa riferimento al valore del CPUCount parametro nella CONFIG sezione .

Il min(CPUCount*2, 8) valore restituisce il minore dei valori tra CPUCount*2 e 8.
BuffersBUMin 64 Numero minimo di pagine da aggiornare per ciclo
BuffersBUMax 128 Numero massimo di pagine da aggiornare per ciclo Il valore minimo è 0. Il valore massimo è limitato dalla memoria di sistema.
DelayAfterCycles 2 Applicare il BUDelay parametro dopo il completamento del numero specificato di cicli
BUDelay 10 Numero di millisecondi di attesa dopo ogni DelayAfterCycles operazione

Sezione ShrinkUser

Lo strumento SQLIOSim accetta i valori specificati nella ShrinkUser sezione per simulare le operazioni di compattazione DBCC. Lo strumento SQLIOSim può anche usare la ShrinkUser sezione per aumentare le dimensioni del file.

Parametro Valore predefinito Descrizione
MinShrinkInterval 120 Intervallo minimo tra le operazioni di compattazione in secondi
MaxShrinkInterval 600 Intervallo massimo tra le operazioni di compattazione in secondi
MinExtends 1 Numero minimo di incrementi in base al quale lo strumento SQLIOSim aumenta o riduce il file
MaxExtends 20 Numero massimo di incrementi in base ai quali lo strumento SQLIOSim aumenta o riduce il file

Commenti del file di configurazione .ini

Il carattere punto e virgola (;) all'inizio di una riga nel file di configurazione .ini fa sì che la riga venga considerata come un singolo commento.

Creazione di file

Lo strumento SQLIOSim crea file di dati e file di log separati per simulare i modelli di I/O generati SQL Server nel file di dati e nel relativo file di log. Lo strumento SQLIOSim non usa il motore di SQL Server per eseguire attività di stress. Pertanto, è possibile usare lo strumento SQLIOSim per testare un computer prima di installare SQL Server.

Quando si esegue lo strumento SQLIOSim, assicurarsi di specificare lo stesso percorso del file usato per i file di database SQL Server. Quando si esegue questa operazione, lo strumento simula lo stesso percorso di I/O usato dal database SQL Server.

È possibile abilitare gli attributi di compressione o crittografia per i file di test esistenti. È anche possibile abilitare questi attributi per la directory esistente in cui vengono creati i file di test. Le opzioni corrispondenti per abilitare questi attributi si trovano nella finestra di dialogo Proprietà per un file o una directory.

Per impostazione predefinita, lo strumento SQLIOSim crea file di test con estensione mdx e ldx . Pertanto, questi file non sovrascrivono i file di dati e di log esistenti.

Avviso

Per evitare di perdere i dati SQL Server effettivi, non specificare i file di database SQL Server effettivi per il test. Lo strumento SQLIOSim sovrascrive i dati usando modelli di test casuali.

Log degli errori e gestione di SQLIOSim

Lo strumento SQLIOSim crea il file di log degli errori in uno dei percorsi seguenti:

  • La posizione che specifichi nel parametro di avvio del log
  • Il percorso che specifichi nella riga ErrorFile= nel file Sqliosim.cfg.ini

Il log degli errori SQLIOSim.log.xml contiene informazioni dettagliate sull'esecuzione. Questi dettagli includono informazioni sull'errore. Esaminare attentamente il log per informazioni sugli errori e informazioni sull'avviso.

Note

Se si verifica un errore nello strumento SQLIOSim, chiedere al produttore dell'hardware di determinare la causa radice del problema. Il problema potrebbe anche essere causato da un driver di dispositivo, da un driver di filtro del file system (ad esempio, software antivirus) o dal sistema operativo.

Molteplici copie

Lo strumento SQLIOSim supporta test a livello di file multipli e test a livello di utente multipli. Lo strumento SQLIOSim non richiede più chiamate. È possibile eseguire più copie dello strumento SQLIOSim se sono soddisfatte le condizioni seguenti:

  • Tutte le copie fanno riferimento a file di test univoci per ogni istanza dello strumento.
  • Il MaxMemoryMB parametro di ogni istanza fornisce un'area di memoria non sovrapposta sufficiente per ogni istanza.

La somma del MaxMemoryMB parametro per ogni istanza deve essere minore o uguale alla memoria fisica totale. Alcune fasi di test, ad esempio la simulazione dei checkpoint, possono richiedere un utilizzo elevato della memoria e possono creare condizioni di memoria insufficiente quando si eseguono più copie. Se riscontri errori di esaurimento della memoria, riduci il numero di copie dello strumento che sono in esecuzione.