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

Questo articolo descrive come usare l'utilità SQLIOSim per eseguire test di stress nei sottosistemi del disco per simulare l'attività di SQL Server.

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

Introduzione

Questo articolo descrive lo strumento SQLIOSim. È possibile usare SQLIOSim per eseguire test di affidabilità e integrità nei sottosistemi del disco utilizzati SQL Server. Questi test SQLIOSim simulano le attività di lettura, scrittura, checkpoint, backup, ordinamento e read-ahead eseguite da Microsoft SQL Server. Per altre informazioni sui modelli di I/O SQL Server, vedere SQL Server Nozioni di base sull'I/O, capitolo 2. L'utilità SQLIOSim esegue questa simulazione indipendentemente dal motore di SQL Server.

L'obiettivo principale dei test di simulazione di I/O è garantire l'affidabilità del sottosistema di I/O sottostante prima che il SQL Server inizi a usarlo. SQLIOSim non interagisce con SQL Server e non richiede nemmeno l'esecuzione di SQL Server. Nella maggior parte dei casi, infatti, è consigliabile usare SQLIOSim quando SQL Server non è in esecuzione per evitare la concorrenza per la velocità effettiva di I/O tra le due applicazioni. Prestare molta attenzione a non puntare o usare i file di database SQL Server effettivi nel test SQLIOSim perché è possibile sovrascriverli.

Per mantenere l'integrità dei dati appropriata, è consigliabile eseguire test di stress del sottosistema di I/O prima di distribuire SQL Server nel nuovo hardware. L'utilità SQLIOSim simula i modelli di lettura e scrittura e le tecniche di identificazione dei problemi di SQL Server. Per eseguire queste attività, l'utilità SQLIOSim simula l'attività utente e l'attività di sistema di un sistema SQL Server.

L'utilità SQLIOSim non garantisce né garantisce la sicurezza o l'integrità dei dati. L'utilità è progettata per fornire test di base di un ambiente di sistema. L'utilità SQLIOSim può 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 test di benchmark delle prestazioni e si vuole determinare la capacità di velocità effettiva di I/O del sistema di archiviazione, usare invece lo strumento Diskspd .

L'utilità SQLIOSim sostituisce l'utilità SQLIOStress, precedentemente nota come utilità SQL70IOStress.

Percorso SQLIOSim

In passato SQLIOSim veniva fornito come pacchetto di download separato. A partire da SQL Server 2008, SQLIOSim è incluso nell'installazione del prodotto SQL Server. Quando si installa SQL Server, è possibile trovare lo strumento SQLIOSim nella cartella \Binn dell'installazione di SQL Server. È consigliabile usare questa versione aggiornata dello strumento per simulare l'attività di I/O nel sottosistema del disco.

Tre file fanno parte del pacchetto SQLIOSim. La cartella \Binn contiene due file eseguibili, SQLIOSim.com e SQLIOSim.exe. Entrambi i file eseguibili offrono funzionalità di simulazione I/O identiche.

  • SQLIOSim.com è uno strumento da riga di comando. È possibile configurarlo per l'esecuzione senza l'interazione dell'utente. Per eseguire questa configurazione, è possibile usare parametri della riga di comando, un file di configurazione o una combinazione di entrambi questi 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.
  • È anche possibile usare i file di configurazione per automatizzare la simulazione di I/O con SQLIOSim. Per altre informazioni, vedere la sezione relativa al file di configurazione SQLIOSim .

Usare SQLIOSim in un computer senza SQL Server

È consigliabile usare 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 in futuro e garantire l'affidabilità del sottosistema di I/O. Per eseguire questa attività, provare a copiare i tre file SQLIOSim da un computer in cui è installato SQL Server ed eseguire i test prima di un'installazione SQL Server. Copiare SQLIOSim.com, SQLIOSim.exee facoltativamente uno o più file di configurazione se si prevede di usare impostazioni preconfigurate. Eseguire quindi la simulazione di test nel computer.

Come usare SQLIOSim

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

Avviso

Non specificare i file di database SQL Server effettivi per il test. L'utilità SQLIOSim sovrascriverà i dati con modelli di test casuali e i dati SQL Server effettivi andranno persi.

Gli esempi successivi illustrano come eseguire SQLIOSim usando la GUI e la riga di comando.

Esempio 1: Usare l'interfaccia utente grafica

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

  2. Avviare l'applicazione SQLIOSIM.EXE . È possibile visualizzare la finestra File e configurazione , che contiene alcune impostazioni predefinite. È possibile modificare queste impostazioni in base alle esigenze di configurazione.

    Screenshot che mostra la configurazione del file.

  3. Evidenziare il primo file mdxC:\temp\sqliosim\sqliosim.mdx nell'elenco. Questo file è l'equivalente di un file di dati.

  4. Modificare le impostazioni del file modificandone la posizione, le dimensioni, le dimensioni massime o l'incremento. Mantenere deselezionato il file di log per simulare un file di dati. Selezionare quindi il pulsante 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, le dimensioni sono impostate su 2048 MB, le dimensioni massime sono impostate su 4096 MB e le dimensioni di incremento sono impostate su 64 MB.

  5. Modificare il secondo file con il suffisso ldx . Questo file rappresenta l'equivalente di un file di log delle transazioni. Assicurarsi di mantenere abilitata la casella di controllo File di log . Al termine, selezionare Applica .

    Screenshot della configurazione del file di log.

  6. È possibile aggiungere altri file all'elenco selezionando l'opzione Nuovo file al centro dello schermo all'interno della griglia tabulare. Dopo aver selezionato Nuovo file, è possibile digitare il percorso del file e selezionare le impostazioni rimanenti. Non dimenticare di selezionare Applica. Ecco un esempio:

    Screenshot dell'aggiunta di un nuovo file di test.

  7. Dopo aver soddisfatto la configurazione, selezionare il pulsante OK .

  8. SelezionareSimulator Start (Avvia simulatore>) per eseguire la simulazione di I/O SQL. In alternativa, è possibile selezionare F12 o il pulsante più a sinistra con un cerchio verde al suo interno.

    Screenshot che mostra un'istanza di SQLIOSim in esecuzione.

  9. Attendere il completamento della simulazione ed 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 rimuovendo i commenti per le File1 sezioni e File2 e modificando i valori in FileName 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 opzioni

È possibile testare più volumi di disco contemporaneamente usando l'opzione -dir . L'esempio seguente crea file da 500 MB 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: Usare uno strumento da riga di comando su 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 l'utilità SQLIOSim fornisce un controllo avanzato del comportamento. Quando 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 Comment
-cfg File Eseguire l'override del file di configurazione predefinitoSqliosim.cfg.ini. L'utilità SQLIOSim restituisce un errore se l'utilità non riesce a trovare il file.
-save File Salvare la configurazione risultante nel file di configurazione. È possibile usare questa opzione per creare il file di configurazione iniziale.
-log File Specificare il nome del file di log degli errori e il percorso del file di 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 (con estensione ldf). È possibile eseguire questo comando più volte. Nella maggior parte dei casi, questa posizione è una radice dell'unità o un punto di montaggio del 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ò crescere fino a due volte la dimensione iniziale. Le dimensioni del file di log vengono calcolate come metà delle dimensioni del file di dati. Tuttavia, il file di log non può essere maggiore di 50 MB.

File di configurazione SQLIOSim

È possibile usare un file di configurazione con SQLIOSim per scegliere tutte le impostazioni per la simulazione di I/O in anticipo. Questo file di configurazione può essere utile per automatizzare le esecuzioni di SQLIOSim.

I file di configurazione di esempio per vari test possono essere scaricati dal repository GitHub del team di supporto SQL Server.

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

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

File di configurazione di esempio

Sono disponibili cinque file di configurazione di esempio se si desidera usarli per le esecuzioni automatizzate di SQLIOSim.

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

- I file vengono resi piccoli per mantenerli completamente in memoria

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

CacheHitRatio=10000
UserCount=0
sqliosim.nothrottle.cfg.ini - Rimuovere la limitazione delle richieste di I/O

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

- I file vengono resi piccoli per mantenerli completamente in memoria

- I file sono resi non compattabili

- Nessuna lettura sequenziale

- Nessun accesso casuale

- Aggiornamento bulk in blocchi di grandi dimensioni 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 - Usare solo 32 MB di memoria

- Rendi la durata di I/O di destinazione abbastanza grande da abilitare molte richieste di I/O in sospeso

- Disabilitare le API scatter/gather per inviare richieste di I/O separate per ogni pagina di 8 KB

- Creare un file non compattabile da 1 GB

- Creare un flusso sparse secondario non eseguibile da 1 GB 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 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, l'utilità SQLIOSim imposta il parametro su 0.
  • Se il tipo di parametro è Boolean, i valori validi che è possibile assegnare al parametro sono true e false. Inoltre, i valori fanno distinzione tra maiuscole e minuscole. L'utilità 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, l'utilità SQLIOSim controlla il valore assegnato al parametro rispetto al file elaborato dall'utilità SQLIOSim. L'utilità 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 include diverse sezioni:

Ognuna di queste sezioni è descritta nella sezione seguente.

Sezione CONFIG

L'utilità SQLIOSim accetta 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 del tipo XML
CPUCount Numero di CPU nel computer Numero di CPU logiche da creare Il massimo è 64 CPU.
Affinity 0 Maschera di affinità cpu fisica da applicare alle CPU logiche La maschera di affinità deve trovarsi all'interno della maschera CPU attiva. Il valore 0 indica che verranno usate tutte le CPU disponibili.
MaxMemoryMB Memoria fisica disponibile all'avvio dell'utilità 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 Il valore 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 Rapporto di riscontro simulato della cache quando l'utilità SQLIOSim legge dal disco
MaxOutstandingIO 0 Numero massimo di operazioni di I/O in sospeso consentite a livello di processo Il valore non può superare 140.000. Il valore 0 indica che sono consentite fino a circa 140.000 operazioni di I/O. Questo è il limite dell'utilità.
TargetIODuration 100 Durata delle operazioni di I/O, in millisecondi, destinate alla limitazione Se la durata media di I/O supera la durata di I/O di destinazione, l'utilità SQLIOSim limita il numero di operazioni di I/O in sospeso per ridurre il carico e migliorare il tempo di completamento dell'I/O.
AllowIOBursts true Consenti di disattivare la limitazione per pubblicare molte richieste di I/O I burst di I/O vengono abilitati durante l'aggiornamento iniziale, il checkpoint iniziale e il checkpoint finale alla fine dei cicli di test. Il MaxOutstandingIO parametro è ancora rispettato. È possibile prevedere avvisi di I/O lunghi.
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, alcune utilità 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 Usare ReadScatter o WriteGather API Se questo parametro è impostato su true, anche il NoBuffering parametro viene impostato su true.

SQL Server usa I/O a dispersione/raccolta per la maggior parte delle richieste di I/O.
ForceReadAhead true Eseguire un'operazione di lettura in avanti anche se i dati sono già letti L'utilità SQLIOSim esegue il comando read anche se la pagina dei dati è già presente nel pool di buffer.

Il supporto SQL Server Microsoft ha usato correttamente l'impostazione true per esporre i 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, tutti i flussi vengono eliminati.
DeleteFilesAtShutdown False 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, l'utilità SQLIOSim elimina tutti i flussi di dati.
StampFiles False Espandere il file stampando zeri Questo processo può richiedere molto tempo se il file è di grandi dimensioni. Se si imposta questo parametro su false, l'utilità 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 del file non è abilitata, SQL Server esegue zero stamping. Le versioni di SQL Server precedenti a SQL Server 2000 eseguono sempre zero stamping.

È consigliabile cambiare il valore del parametro durante il test per assicurarsi che sia l'inizializzazione immediata dei file che lo zero stamping funzionino correttamente.You should switch the value of the StampFiles parameter during testing to sure that is instant file initialization and zero stamping are operating correctly.

Sezione File<N>

L'utilità SQLIOSim è progettata per consentire più test dei file. La File<N> sezione è rappresentata come [File1], [File2] per ogni file nel test.

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

NOTA In SQL Server 2005 le operazioni DBCC usano flussi. È consigliabile eseguire test di flusso.
InitialSize Nessun valore predefinito Dimensioni iniziali in MB Se il file esistente è maggiore del valore specificato per il InitialSize parametro , l'utilità SQLIOSim non compatta il file esistente. Se il file esistente è più piccolo, l'utilità SQLIOSim espande il file esistente.
MaxSize Nessun valore predefinito Dimensioni massime in MB Un file non può aumentare di più del valore specificato per il MaxSize parametro .
Increment 0 Dimensioni in MB dell'incremento in base al quale il file aumenta o si riduce. Per altre informazioni, vedere la ShrinkUser sezione di questo articolo. L'utilità SQLIOSim modifica il parametro all'avvio Increment in modo che venga stabilita la situazione: Increment * MaxExtents < MaxMemoryMB / NumberOfDataFiles.
Se il valore di Increment è 0, l'utilità SQLIOSim imposta il file come non compattabile.
Shrinkable False Indica se il file può essere ridotto o espanso Se si imposta il Increment parametro su 0, il file viene impostato come non compattabile. In questo caso, è necessario impostare il parametro su Shrinkablefalse. 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 parametro su Shrinkabletrue.
Sparse False Indica se l'attributo Sparse deve essere impostato sui file Per i file esistenti, l'utilità 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.

È consigliabile 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 errore simile al seguente dallo strumento:

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

Sezione RandomUser

L'utilità SQLIOSim accetta i valori specificati nella RandomUser sezione 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 casuale 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. Il valore zero (0) indica che non è possibile creare utenti con accesso casuale. Il valore -1 indica che è necessario usare la configurazione automatica del valore : min(CPUCount*2, 8).
NOTA Un sistema SQL Server può avere migliaia di sessioni. La maggior parte delle sessioni non dispone di richieste attive. Usare la count(*) funzione nelle query sulla sys.dm_exec_requests vista a gestione dinamica (DMV) come baseline 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 valore più piccolo tra CPUCount*2 e 8.
JumpToNewRegionPercentage 500 Possibilità di passare a una nuova area del file L'inizio dell'area è selezionato in modo casuale. La dimensione dell'area è 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 in anticipo fino a 1.024 pagine.

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

In genere, l'attività casuale dell'utente 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 Nell'area viene selezionata una catena a lunghezza casuale che può essere letta. Questo parametro definisce la percentuale delle pagine da aggiornare e scrivere su disco.
MinLogPerBuffer 64 Dimensioni minime dei record di log in byte Il valore deve essere un multiplo delle dimensioni del settore su disco o una dimensione che si adatta uniformemente alle dimensioni del settore su disco.
MaxLogPerBuffer 8192 Dimensioni massime dei 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 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

L'utilità SQLIOSim accetta i valori specificati nella sezione per simulare l'attività AuditUser DBCC per leggere e controllare le informazioni sulla pagina. La convalida si verifica 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. Il valore 0 indica che non è possibile creare utenti con accesso casuale. Il valore -1 indica che è necessario usare la configurazione automatica del valore : min(CPUCount*2, 8).
NOTA Un sistema SQL Server può avere migliaia di sessioni. La maggior parte delle sessioni non dispone di richieste attive. Usare la count(*) funzione nelle query sulla sys.dm_exec_requests DMV come baseline 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 valore più piccolo 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

L'utilità SQLIOSim accetta i valori specificati nella ReadAheadUser sezione per simulare SQL Server'attività read-ahead. 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. Il valore 0 indica che non è possibile creare utenti con accesso casuale. Il valore -1 indica che è necessario utilizzare 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 dispone di richieste attive. Usare la count(*) funzione nelle query sulla sys.dm_exec_requests DMV come baseline per stabilire questo valore del parametro di test.

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

Il min(CPUCount*2, 8) valore restituisce il valore più piccolo 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 SQL Server Enterprise edizioni possono leggere fino a 1.024 pagine in una singola richiesta. Se si installa SQL Server in un computer con un numero elevato di risorse cpu, memoria e disco, è consigliabile 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

L'utilità SQLIOSim accetta i valori specificati nella BulkUpdateUser sezione per simulare operazioni bulk, ad SELECT...INTO esempio operazioni e BULK INSERT operazioni.

Parametro Valore predefinito Descrizione Commenti
UserCount -1 Numero di BULK UPDATE thread Il valore non può superare il valore seguente: CPUCount*1023-100
Il valore -1 indica che è necessario utilizzare 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 dispone di richieste attive. Usare la count(*) funzione nelle query sulla sys.dm_exec_requests DMV come baseline 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 valore più piccolo 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

L'utilità SQLIOSim accetta i valori specificati nella ShrinkUser sezione per simulare le operazioni di compattazione DBCC. L'utilità SQLIOSim può anche usare la ShrinkUser sezione per aumentare il 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 ai quali l'utilità SQLIOSim aumenterà o ridurrà il file
MaxExtends 20 Numero massimo di incrementi in base ai quali l'utilità SQLIOSim aumenterà o ridurrà il file

Commenti .ini file di configurazione

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

L'utilità 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 file di log. L'utilità SQLIOSim non usa il motore di SQL Server per eseguire l'attività di stress. È quindi possibile usare l'utilità SQLIOSim per testare un computer prima di installare SQL Server.

Quando si esegue l'utilità SQLIOSim, assicurarsi di specificare lo stesso percorso del file usato per i file di database SQL Server. In questo caso, l'utilità simula lo stesso percorso di I/O del 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 verranno 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, l'utilità SQLIOSim crea file di test con estensione mdx e ldx . Pertanto, questi file non sovrascriveranno i file di dati e di log esistenti.

Avviso

Non specificare i file di database SQL Server effettivi per il test. L'utilità SQLIOSim sovrascriverà i dati con modelli di test casuali e i dati SQL Server effettivi andranno persi.

Log degli errori e gestione di SQLIOSim

L'utilità SQLIOSim crea il file di log degli errori in uno dei percorsi seguenti:

  • Percorso specificato nel parametro di avvio del log
  • Percorso specificato nella ErrorFile= riga nel file Sqliosim.cfg.ini

Il log degli erroriSQLIOSim.log.xmlcontiene i dettagli sull'esecuzione. Questi dettagli includono informazioni sugli errori. Esaminare attentamente il log per informazioni sull'errore e informazioni di avviso.

Nota

Se si verifica un errore nell'utilità SQLIOSim, è consigliabile 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, antivirus) o dal sistema operativo.

Più copie

L'utilità SQLIOSim supporta test a livello di file multipli e test a livello di utente multipli. L'utilità SQLIOSim non richiede più chiamate. È possibile eseguire più copie dell'utilità SQLIOSim se si verificano le condizioni seguenti:

  • Tutte le copie fanno riferimento a file di test univoci per istanza dell'utilità.
  • 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 una quantità elevata di memoria e creare condizioni di memoria insufficiente quando si eseguono più copie. Se si verificano errori di memoria insufficiente, è possibile ridurre il numero di copie dell'utilità in esecuzione.

Riferimenti