Freigeben über


Verwenden des SQLIOSim-Hilfsprogramms zum Simulieren der SQL Server-Aktivität auf einem Datenträgersubsystem

In diesem Artikel wird beschrieben, wie Sie das SQLIOSim-Hilfsprogramm verwenden, um Stresstests auf Datenträgersubsystemen durchzuführen, um DIE SQL Server-Aktivität zu simulieren.

Ursprüngliche Produktversion: SQL Server
Ursprüngliche KB-Nummer: 231619

Einführung

In diesem Artikel wird das SQLIOSim-Tool beschrieben. Sie können SQLIOSim verwenden, um Zuverlässigkeits- und Integritätstests auf Datenträgersubsystemen durchzuführen, die SQL Server verwendet. Diese SQLIOSim-Tests simulieren Lese-, Schreib-, Prüfpunkt-, Sicherungs-, Sortier- und Read-Ahead-Aktivitäten, die Microsoft SQL Server ausführt. Weitere Informationen zu SQL Server-E/A-Mustern finden Sie in SQL Server I/O Basics, Kapitel 2. Das SQLIOSim-Hilfsprogramm führt diese Simulation unabhängig vom SQL Server-Modul aus.

Das Hauptziel der E/A-Simulationstests besteht darin, die Zuverlässigkeit des zugrunde liegenden E/A-Subsystems sicherzustellen, bevor Ihr SQL Server mit der Verwendung beginnt. SQLIOSim interagiert nicht mit SQL Server und erfordert nicht einmal, dass SQL Server ausgeführt wird. In den meisten Fällen wird empfohlen, SQLIOSim zu verwenden, wenn SQL Server nicht ausgeführt wird, um den Wettbewerb zwischen den beiden Anwendungen für den E/A-Durchsatz zu vermeiden. Achten Sie sehr darauf, nicht auf die tatsächlichen SQL Server-Datenbankdateien in Ihrem SQLIOSim-Test zu verweisen oder zu verwenden, da Sie sie überschreiben können.

Um die geeignete Datenintegrität aufrechtzuerhalten, empfehlen wir, Stresstests Ihres E/A-Subsystems durchzuführen, bevor Sie SQL Server auf neuer Hardware bereitstellen. Das SQLIOSim-Hilfsprogramm simuliert die Lese- und Schreibmuster und die Problemidentifikationstechniken von SQL Server. Um diese Aufgaben auszuführen, simuliert das SQLIOSim-Hilfsprogramm die Benutzeraktivität und die Systemaktivität eines SQL Server-Systems.

Das SQLIOSim-Hilfsprogramm garantiert keine Datensicherheit oder Integrität. Das Hilfsprogramm wurde entwickelt, um grundlegende Tests einer Systemumgebung bereitzustellen. Das SQLIOSim-Hilfsprogramm kann potenzielle Datenintegritätsprobleme offenlegen.

Weitere Informationen zur Protokollierung und Datenspeicherung finden Sie unter Beschreibung der Protokollierungs- und Datenspeicheralgorithmen, die die Datensicherheit in SQL Server erweitern.

Wenn Sie Leistungsvergleichstests durchführen und die E/A-Durchsatzkapazität des Speichersystems ermitteln möchten, verwenden Sie stattdessen das Diskspd-Tool .

Das SQLIOSim-Hilfsprogramm ersetzt das SQLIOStress-Hilfsprogramm, das früher als SQL70IOStress-Hilfsprogramm bezeichnet wurde.

SQLIOSim-Speicherort

In der Vergangenheit wurde SQLIOSim als separates Downloadpaket ausgeliefert. Ab SQL Server 2008 ist SQLIOSim in der SQL Server-Produktinstallation enthalten. Wenn Sie SQL Server installieren, finden Sie das SQLIOSim-Tool im Ordner "\Binn" Ihrer SQL Server-Installation. Es wird empfohlen, diese aktualisierte Version des Tools zu verwenden, um die E/A-Aktivität auf dem Datenträgersubsystem zu simulieren.

Drei Dateien sind Teil des SQLIOSim-Pakets. Der Ordner "\Binn " enthält zwei ausführbare Dateien, SQLIOSim.com und SQLIOSim.exe. Beide ausführbaren Dateien bieten identische E/A-Simulationsfunktionen.

  • SQLIOSim.com ist ein Befehlszeilentool. Sie können sie so konfigurieren, dass sie ohne Benutzerinteraktion ausgeführt wird. Um diese Konfiguration ausführen zu können, können Sie Befehlszeilenparameter, eine Konfigurationsdatei oder eine Kombination dieser beiden Methoden verwenden.
  • SQLIOSim.exe ist eine grafische Anwendung (GUI), die keine Befehlszeilenparameter akzeptiert. SQLIOSim.exe lädt jedoch Standardkonfigurationsdaten aus Konfigurationsdateien.
  • Sie können auch Konfigurationsdateien verwenden, um die E/A-Simulation mit SQLIOSim zu automatisieren. Weitere Informationen finden Sie im Abschnitt zur SQLIOSim-Konfigurationsdatei .

Verwenden von SQLIOSim auf einem Computer ohne SQL Server

Es wird empfohlen, SQLIOSim für einen erweiterten Test auf einem Computer zu verwenden, bevor Sie SQL Server installieren. Verwenden Sie es, um das E/A-Subsystem zu testen, in dem Sie Daten und Protokolldateien in Zukunft platzieren und die Zuverlässigkeit des E/A-Subsystems sicherstellen möchten. Um diese Aufgabe auszuführen, sollten Sie die drei SQLIOSim-Dateien von einem Computer kopieren, auf dem SQL Server installiert ist, und die Tests vor einer SQL Server-Installation ausführen. Kopieren Sie SQLIOSim.com, SQLIOSim.exe und optional eine oder mehrere Konfigurationsdateien, wenn Sie vorkonfigurierte Einstellungen verwenden möchten. Führen Sie dann die Testsimulation auf dieser Maschine aus.

So verwenden Sie SQLIOSim

Sie benötigen den SQL Server-Dienst nicht, während Sie SQLIOSim ausführen. Tatsächlich wird empfohlen, SQL Server nicht auszuführen, während SQLIOSim ausgeführt wird, da sie für E/A-Ressourcen konkurrieren können.

Warnung

Geben Sie nicht die tatsächlichen SQL Server-Datenbankdateien für Tests an. Das SQLIOSim-Hilfsprogramm überschreibt die Daten mit zufälligen Testmustern, und Ihre tatsächlichen SQL Server-Daten gehen verloren.

Die nächsten Beispiele veranschaulichen das Ausführen von SQLIOSim mithilfe der GUI und der Befehlszeile.

Beispiel 1: Verwenden der GUI

  1. Wechseln Sie zu "C:\Programme\Microsoft SQL Server\MSSQLXX".<InstanceName>\MSSQL\Binn.

  2. Starten Sie die SQLIOSIM.EXE Anwendung. Sie können das Fenster "Dateien und Konfiguration " sehen, das einige Standardeinstellungen enthält. Sie können diese Einstellungen so ändern, dass sie Ihren Konfigurationsanforderungen entsprechen.

    Screenshot der Dateikonfiguration.

  3. Markieren Sie die erste mdx-Datei C:\temp\sqliosim\sqliosim.mdx in der Liste. Diese Datei entspricht einer Datendatei.

  4. Ändern Sie die Dateieinstellungen, indem Sie den Speicherort, die Größe, die maximale Größe oder die Inkrementierung ändern. Lassen Sie die Protokolldatei deaktiviert, während Sie eine Datendatei simulieren möchten. Klicken Sie anschließend auf die Schaltfläche Anwenden.

    Screenshot der Datendateikonfiguration.

    Das Beispiel zeigt, wie der Speicherort der Datei in D:\temp\sqliosim\sqliosim.mdx geändert wird, seine Größe auf 2048 MB festgelegt ist, seine maximale Größe auf 4096 MB festgelegt ist und seine Inkrementgröße auf 64 MB festgelegt ist.

  5. Ändern Sie die zweite Datei mit dem ldx-Suffix . Diese Datei stellt das Äquivalent einer Transaktionsprotokolldatei dar. Achten Sie darauf, dass das Kontrollkästchen "Protokolldatei " aktiviert bleibt. Wählen Sie Anwenden aus, wenn Sie fertig sind.

    Screenshot der Protokolldateikonfiguration.

  6. Sie können der Liste weitere Dateien hinzufügen, indem Sie die Option "Neue Datei" in der Mitte des Bildschirms im tabellarischen Raster auswählen. Nachdem Sie "Neue Datei" ausgewählt haben, können Sie den Dateispeicherort eingeben und die verbleibenden Einstellungen auswählen. Vergessen Sie nicht, "Übernehmen" auszuwählen. Hier sehen Sie ein Beispiel:

    Screenshot des Hinzufügens einer neuen Testdatei.

  7. Sobald Sie mit Ihrer Konfiguration zufrieden sind, wählen Sie die Schaltfläche "OK " aus.

  8. Wählen Sie "Simulator>starten" aus, um die SQL IO-Simulation auszuführen. Alternativ können Sie F12 oder die schaltfläche ganz links mit einem grünen Kreis darin auswählen.

    Screenshot, der eine ausgeführte SQLIOSim zeigt.

  9. Warten Sie, bis die Simulation abgeschlossen ist, und überprüfen Sie die Ausgabe.

Beispiel 2: Verwenden eines Befehlszeilentools und einer Konfigurationsdatei

  1. Ändern Sie die sqliosim.default.cfg.ini Datei, indem Sie die Kommentare für die File1 Abschnitte und File2 Abschnitte entfernen und die FileName Werte in neue SQLIOSim-Dateien ändern. Zum Beispiel:

    [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. Führen Sie SQLIOSIM.COM mithilfe der Konfigurationsdatei C:\temp\sqliosimconfig\sqliosim.default.cfg.ini aus:

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

Beispiel 3: Verwenden eines Befehlszeilentools mit Schaltern

Sie können mehrere Datenträgervolumes gleichzeitig testen, indem Sie die -dir Option verwenden. Im folgenden Beispiel werden 500 MB Dateien erstellt und der Test für 300 Sekunden (fünf Minuten) ausgeführt.

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

Beispiel 4: Verwenden eines Befehlszeilentools für mehrere Laufwerke

Im folgenden Beispiel werden 32-GB-Dateien erstellt und der Test für 600 Sekunden (10 Minuten) mithilfe der sqliosim.hwcache.cfg.ini Konfigurationsdatei ausgeführt.

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 Befehlszeilenparameter

SQLIOSIM.COM akzeptiert eine begrenzte Anzahl von Befehlszeilenparametern, um das grundlegende Verhalten zu steuern. Die Konfigurationsdatei für das SQLIOSim-Hilfsprogramm bietet erweiterte Verhaltenssteuerung. Wenn Befehlszeilenparameter und Konfigurationsdateioptionen überlappen, haben die Befehlszeilenparameter Vorrang.

Parameter Kommentar
-cfg file Überschreiben Sie die Sqliosim.cfg.ini Standardkonfigurationsdatei. Das SQLIOSim-Hilfsprogramm gibt einen Fehler zurück, wenn das Hilfsprogramm die Datei nicht finden kann.
-save file Speichern Sie die resultierende Konfiguration in der Konfigurationsdatei. Sie können diese Option verwenden, um die anfängliche Konfigurationsdatei zu erstellen.
-log file Geben Sie den Namen der Fehlerprotokolldatei und den Pfad der Fehlerprotokolldatei an. Der Standarddateiname ist Sqliosim.log.xml.
-dirdir Legen Sie den Speicherort fest, um die Datendatei (.mdf) und die Protokolldatei (LDF) zu erstellen. Sie können diesen Befehl mehrmals ausführen. In den meisten Fällen ist dieser Speicherort ein Laufwerkstamm oder ein Volume-Bereitstellungspunkt. Dieser Speicherort kann ein langer Pfad oder ein UNC-Pfad sein.
-d sekunden Legen Sie die Dauer der Hauptausführung fest. Dieser Wert schließt die Vorbereitungsphase und die Überprüfungsphase aus.
-sizeMB Legen Sie die Anfangsgröße der Datendatei in Megabyte (MB) fest. Die Datei kann bis zu zwei Mal größer werden. Die Größe der Protokolldatei wird als Hälfte der Größe der Datendatei berechnet. Die Protokolldatei darf jedoch nicht größer als 50 MB sein.

SQLIOSim-Konfigurationsdatei

Sie können eine Konfigurationsdatei mit SQLIOSim verwenden, um alle Einstellungen für die E/A-Simulation vorab auszuwählen. Diese Konfigurationsdatei kann bei der Automatisierung von Ausführungen von SQLIOSim helfen.

Beispielkonfigurationsdateien für verschiedene Tests können aus dem GitHub-Repository des SQL Server-Supportteams heruntergeladen werden.

Sie müssen keine Konfigurationsdatei verwenden. Wenn Sie keine Konfigurationsdatei verwenden, übernehmen alle Parameter Standardwerte, mit Ausnahme des Speicherorts der Datendatei und des Speicherorts der Protokolldatei. Sie müssen eine der folgenden Methoden verwenden, um den Speicherort der Datendatei und den Speicherort der Protokolldatei anzugeben:

  • Verwenden Sie die Befehlszeilenparameter in der SQLIOSIM.COM-Datei .
  • Verwenden Sie das Dialogfeld "Dateien und Konfiguration ", nachdem Sie die SQLIOSim.exe Datei ausgeführt haben.
  • Verwenden Sie den Datei-N-Abschnitt<> der Konfigurationsdatei.

Beispielkonfigurationsdateien

Fünf Beispielkonfigurationsdateien sind verfügbar, wenn Sie sie für automatisierte SQLIOSim-Ausführung verwenden möchten.

Beispieldatei Beschreibung Parameter, die sich von der Standardkonfigurationsdatei unterscheiden
sqliosim.default.cfg.ini
sqliosim.hwcache.cfg.ini – Minimieren von Lesevorgängen

- Dateien werden klein gemacht, um sie vollständig im Arbeitsspeicher zu halten

- Keine sequenziellen Lesevorgänge
Für den Abschnitt "AuditUser " und für den Abschnitt "ReadAheadUser ":

CacheHitRatio=10000
UserCount=0
sqliosim.nothrottle.cfg.ini - E/A-Einschränkung entfernen

– Minimieren der Zeit zum Warten, um das E/A-Volumen zu erhöhen
TargetIODuration=1000000
AuditDelay=10
RADelay=10
sqliosim.seqwrites.cfg.ini – Minimieren von Lesevorgängen

- Dateien werden klein gemacht, um sie vollständig im Arbeitsspeicher zu halten

- Dateien werden nicht verkleinert

- Keine sequenziellen Lesevorgänge

- Kein zufälliger Zugriff

- Massenaktualisierung in großen Blöcken ohne Verzögerungen
Shrinkable=FALSE

Für die Abschnitte AuditUser, ReadAheadUser und RandomUser :

CacheHitRatio=10000
ForceReadAhead=FALSE
BuffersBUMin=600
BuffersBUMax=1000
BUDelay=1
UserCount=0
sqliosim.sparse.cfg.ini - Nur 32 MB Arbeitsspeicher verwenden

- Festlegen der Ziel-E/A-Dauer groß genug, um viele ausstehende E/A-Anforderungen zu aktivieren

– Deaktivieren von Punkt-/Gather-APIs zum Ausgeben separater E/A-Anforderungen für jede 8-KB-Seite

- Erstellen einer nicht verkleinerbaren Datei mit 1 GB

– Erstellen eines nichthrinkbaren sekundären sparse-Datenstroms mit 1 GB in der Datei
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

Vorbehalte für Parameterwerte

  • Wenn der Name des Parameters angibt, dass es sich bei dem Parameter um ein Verhältnis oder einen Prozentsatz handelt, wird der Wert des Parameters als Prozentsatz oder als Verhältnis dividiert durch 0,01 ausgedrückt. Der Wert des CacheHitRatio Parameters lautet 10 percentz. B. . Dieser Wert wird ausgedrückt, 1000 da 10 dividiert durch 0,01 gleich ist 1000. Der Maximalwert eines Prozentparameters lautet 10000.
  • Wenn der Parametertyp numerisch ist und Sie dem Parameter einen nicht numerischen Wert zuweisen, legt das SQLIOSim-Hilfsprogramm den Parameter auf 0.
  • Wenn der Parametertyp lautet Boolean, sind die gültigen Werte, die Sie dem Parameter zuweisen können, und true false. Darüber hinaus wird bei den Werten die Groß-/Kleinschreibung beachtet. Das SQLIOSim-Hilfsprogramm ignoriert alle ungültigen Werte.
  • Wenn ein Parameterpaar einen Minimalwert und einen Maximalwert angibt, darf der Minimalwert den Maximalwert nicht überschreiten. Der Wert des MinIOChainLength Parameters darf beispielsweise nicht größer als der Wert des MaxIOChainLength Parameters sein.
  • Wenn der Parameter eine Reihe von Seiten angibt, überprüft das SQLIOSim-Hilfsprogramm den Wert, den Sie dem Parameter zuweisen, anhand der Datei, die das SQLIOSim-Hilfsprogramm verarbeitet. Das SQLIOSim-Hilfsprogramm führt diese Überprüfung aus, um sicherzustellen, dass die Anzahl der Seiten die Dateigröße nicht überschreitet.

Konfigurationsdateiabschnitte

Es gibt mehrere Abschnitte in der Konfigurationsdatei:

Jeder dieser Abschnitte wird im folgenden Abschnitt beschrieben.

CONFIG-Abschnitt

Das SQLIOSim-Hilfsprogramm verwendet die Werte, die Sie im Abschnitt CONFIG der SQLIOSim-Konfigurationsdatei angeben, um das globale Testverhalten einzurichten.

Parameter Standardwert Beschreibung Kommentare
ErrorFile sqliosim.log.xml Name der XML-Typprotokolldatei
CPUCount Anzahl der CPUs auf dem Computer Anzahl der zu erstellenden logischen CPUs Das Maximum beträgt 64 CPUs.
Affinity 0 Physische CPU-Affinitätsmaske, die für logische CPUs angewendet werden soll Die Affinitätsmaske sollte sich innerhalb der aktiven CPU-Maske enthalten. Ein Wert von 0 bedeutet, dass alle verfügbaren CPUs verwendet werden.
MaxMemoryMB Verfügbarer physischer Arbeitsspeicher, wenn das SQLIOSim-Hilfsprogramm gestartet wird Größe des Pufferpools in MB Der Wert darf die Gesamtmenge des physischen Arbeitsspeichers auf dem Computer nicht überschreiten.
StopOnError true Stoppt die Simulation, wenn der erste Fehler auftritt.
TestCycles 1 Anzahl der auszuführenden vollständigen Testzyklen Ein Wert von 0 gibt eine unendliche Anzahl von Testzyklen an.
TestCycleDuration 300 Dauer eines Testzyklus in Sekunden, mit Ausnahme des Prüfdurchlaufs am Ende des Zyklus
CacheHitRatio 1.000 Simuliertes Cachetrefferverhältnis, wenn das SQLIOSim-Hilfsprogramm vom Datenträger liest
MaxOutstandingIO 0 Maximale Anzahl ausstehender E/A-Vorgänge, die prozessweit zulässig sind Der Wert darf 140.000 nicht überschreiten. Ein Wert von 0 bedeutet, dass bis zu ca. 140.000 E/A-Vorgänge zulässig sind. Dies ist der Grenzwert des Hilfsprogramms.
TargetIODuration 100 Dauer von E/A-Vorgängen in Millisekunden, die durch Drosselung ausgerichtet sind Wenn die durchschnittliche E/A-Dauer die E/A-Zieldauer überschreitet, drosselt das SQLIOSim-Hilfsprogramm die Anzahl der ausstehenden E/A-Vorgänge, um die Last zu verringern und die E/A-Vervollständigungszeit zu verbessern.
AllowIOBursts true Zulassen, dass die Drosselung deaktiviert wird, um viele E/A-Anforderungen zu veröffentlichen E/A-Bursts werden während der ersten Aktualisierung, des anfänglichen Prüfpunkts und des endgültigen Prüfpunkts am Ende der Testzyklen aktiviert. Der MaxOutstandingIO Parameter wird weiterhin berücksichtigt. Sie können lange E/A-Warnungen erwarten.
NoBuffering true Verwenden Sie die Option FILE_FLAG_NO_BUFFERING. SQL Server öffnet Datenbankdateien mithilfe von FILE_FLAG_NO_BUFFERING == true. Einige Dienstprogramme und Dienste, z. B. Analysis Services, verwenden FILE_FLAG_NO_BUFFERING == false. Um einen Server vollständig zu testen, führen Sie einen Test für jede Einstellung aus.
WriteThrough true Verwenden Sie die Option FILE_FLAG_WRITE_THROUGH. SQL Server öffnet Datenbankdateien mithilfe von FILE_FLAG_WRITE_THROUGH == true. Einige Dienstprogramme und Dienste öffnen jedoch die Datenbankdateien mithilfe FILE_FLAG_WRITE_THROUGH == falsevon . Sql Server Analysis Services öffnet z. B. die Datenbankdateien mithilfe FILE_FLAG_WRITE_THROUGH == falsevon . Um einen Server vollständig zu testen, führen Sie einen Test für jede Einstellung aus.
ScatterGather true Verwenden ReadScatter oder WriteGather APIs Wenn dieser Parameter auf true festgelegt ist, wird der NoBuffering Parameter auch auf true. festgelegt.

SQL Server verwendet Punkt/Sammel-E/A für die meisten E/A-Anforderungen.
ForceReadAhead true Ausführen eines Vorlesevorgangs auch dann, wenn die Daten bereits gelesen wurden Das SQLIOSim-Hilfsprogramm gibt den Lesebefehl aus, auch wenn sich die Datenseite bereits im Pufferpool befindet.

Der Microsoft SQL Server-Support hat die echte Einstellung erfolgreich verwendet, um E/A-Probleme verfügbar zu machen.
DeleteFilesAtStartup true Löschen von Dateien beim Start, wenn Dateien vorhanden sind Eine Datei kann mehrere Datenströme enthalten. Nur Datenströme, die File <N> FileName im Eintrag angegeben sind, werden in der Datei abgeschnitten. Wenn der Standarddatenstrom angegeben ist, werden alle Datenströme gelöscht.
DeleteFilesAtShutdown false Löschen von Dateien nach Abschluss des Tests Eine Datei kann mehrere Datenströme enthalten. Nur Datenströme, die File <N> FileName Sie im Eintrag angeben, werden in der Datei abgeschnitten. Wenn der Standarddatenstrom angegeben ist, löscht das SQLIOSim-Hilfsprogramm alle Datenströme.
StampFiles false Erweitern der Datei durch Stempeln von Nullen Dieser Vorgang kann lange dauern, wenn die Datei groß ist. Wenn Sie diesen Parameter auf "false" festlegen, erweitert das SQLIOSim-Hilfsprogramm die Datei durch Festlegen einer gültigen Datenmarkierung.

SQL Server 2005 verwendet das Feature für die Sofortige Dateiinitialisierung für Datendateien. Wenn es sich bei der Datendatei um eine Protokolldatei handelt oder wenn die Sofortige Dateiinitialisierung nicht aktiviert ist, führt SQL Server null Stempel aus. Versionen von SQL Server vor SQL Server 2000 führen immer null Stempel aus.

Sie sollten den Wert des Parameters während des StampFiles Tests wechseln, um sicherzustellen, dass sowohl die sofortige Dateiinitialisierung als auch die Nullstempel ordnungsgemäß funktionieren.

Datei<N-Abschnitt>

Das SQLIOSim-Hilfsprogramm wurde entwickelt, um mehrere Dateitests zu ermöglichen. Der File<N> Abschnitt wird für jede Datei im Test als [File1], [File2] dargestellt.

Parameter Standardwert Beschreibung Kommentare
FileName Kein Standardwert Dateiname und Pfad Der FileName Parameter kann ein langer Pfad oder ein UNC-Pfad sein. Sie kann auch einen sekundären Datenstromnamen und -typ enthalten. Der Parameter kann z FileName . B. auf file.mdf:stream2.

HINWEIS In SQL Server 2005 verwenden DBCC-Vorgänge Datenströme. Es wird empfohlen, Datenstromtests durchzuführen.
InitialSize Kein Standardwert Anfangsgröße in MB Wenn die vorhandene Datei größer als der für den InitialSize Parameter angegebene Wert ist, verkleinert das SQLIOSim-Dienstprogramm die vorhandene Datei nicht. Wenn die vorhandene Datei kleiner ist, erweitert das SQLIOSim-Hilfsprogramm die vorhandene Datei.
MaxSize Kein Standardwert Maximale Größe in MB Eine Datei kann nicht größer als der Wert sein, den Sie für den MaxSize Parameter angeben.
Increment 0 Größe in MB des Inkrements, um das die Datei vergrößert oder verkleinern wird. Weitere Informationen finden Sie im ShrinkUser Abschnitt dieses Artikels. Das SQLIOSim-Hilfsprogramm passt den Increment Parameter beim Start so an, dass die Situation eingerichtet wird: Increment * MaxExtents < MaxMemoryMB / NumberOfDataFiles.
Wenn der Wert Increment lautet 0, legt das SQLIOSim-Hilfsprogramm die Datei als nicht verkleinerbar fest.
Shrinkable false Gibt an, ob die Datei verkrumpft oder erweitert werden kann. Wenn Sie den Increment Parameter auf 0"" festlegen, legen Sie die Datei als nicht verkleinerbar fest. In diesem Fall müssen Sie den Shrinkable Parameter auf false. Wenn Sie den Increment Parameter auf einen anderen 0Wert als festlegen, legen Sie fest, dass die Datei verkleinert werden kann. In diesem Fall müssen Sie den Shrinkable Parameter auf true.
Sparse false Gibt an, ob das Sparse-Attribut für die Dateien festgelegt werden soll. Bei vorhandenen Dateien löscht das SQLIOSim-Hilfsprogramm das Attribut "Sparse" nicht, wenn Sie den Sparse Parameter auf "false" festlegen.

SQL Server 2005 verwendet sparse Dateien, um Snapshotdatenbanken und die sekundären DBCC-Datenströme zu unterstützen.

Es wird empfohlen, sowohl die sparse-Datei als auch die Datenströme zu aktivieren und dann einen Testdurchlauf durchzuführen.

HINWEIS Wenn Sie für die Dateieinstellungen festgelegt haben Sparse = true , geben Sie den Abschnitt nicht an NoBuffering = false config . Wenn Sie diese beiden in Konflikt stehenden Kombinationen verwenden, erhalten Sie möglicherweise eine Fehlermeldung, die dem folgenden aus dem Tool ähnelt:

Fehler:-=====Fehler: 0x80070467
Fehlertext: Beim Zugriff auf die Festplatte ist auch nach Wiederholungen ein Datenträgervorgang fehlgeschlagen.
Beschreibung: Fehler bei der Pufferüberprüfung auf C:\SQLIOSim.mdx Page: 28097
LogFile false Gibt an, ob eine Datei Benutzer- oder Transaktionsprotokolldaten enthält. Sie sollten mindestens eine Protokolldatei definieren.

RandomUser-Abschnitt

Das SQLIOSim-Hilfsprogramm verwendet die Werte, die Sie im RandomUser Abschnitt angeben, um einen SQL Server-Worker zu simulieren, der zufällige Abfragevorgänge ausführt, z. B. OLTP-E/A-Muster (Online Transaction Processing).

Parameter Standardwert Beschreibung Kommentare
UserCount -1 Anzahl der Threads mit wahllosem Zugriff, die gleichzeitig ausgeführt werden Der Wert darf den Wert nicht überschreiten: CPUCount*1023-100.
Die Gesamtzahl aller Benutzer kann diesen Wert nicht überschreiten. Ein Wert von Null (0) bedeutet, dass Sie keine Benutzer mit wahllosem Zugriff erstellen können. Ein Wert von -1 bedeutet, dass Sie die automatische Konfiguration des Werts verwenden müssen: min(CPUCount*2, 8).
HINWEIS : Ein SQL Server-System kann Tausende von Sitzungen haben. Die meisten Sitzungen verfügen nicht über aktive Anforderungen. Verwenden Sie die count(*) Funktion in Abfragen für die sys.dm_exec_requests dynamische Verwaltungsansicht (DYNAMIC Management View, DMV) als Basisplan zum Einrichten dieses Testparameterwerts.

CPUCount hier bezieht sich auf den Wert des CPUCount Parameters im CONFIG Abschnitt.

Der min(CPUCount*2, 8) Wert führt zu den kleineren Werten zwischen CPUCount*2 und 8.
JumpToNewRegionPercentage 500 Die Chance eines Sprungs zu einer neuen Region der Datei Der Anfang des Bereichs wird zufällig ausgewählt. Die Größe des Bereichs ist ein zufälliger Wert zwischen dem Wert des MinIOChainLength Parameters und dem Wert des MaxIOChainLength Parameters.
MinIOChainLength 1 Minimale Bereichsgröße auf Seiten
MaxIOChainLength 100 Maximale Bereichsgröße auf Seiten SQL Server 2005 Enterprise Edition und SQL Server 2000 Enterprise Edition können bis zu 1.024 Seiten vorlesen.

Der Minimalwert ist 0. Der Maximalwert ist durch den Systemspeicher begrenzt.

In der Regel führt die zufällige Benutzeraktivität zu kleinen Scanvorgängen. Verwenden Sie die im ReadAheadUser Abschnitt angegebenen Werte, um größere Scanvorgänge zu simulieren.
RandomUserReadWriteRatio 9000 Prozentsatz der zu aktualisierenden Seiten Eine zufällige Kette wird in der Region ausgewählt und kann gelesen werden. Dieser Parameter definiert den Prozentsatz der Seiten, die aktualisiert und auf den Datenträger geschrieben werden sollen.
MinLogPerBuffer 64 Minimale Protokolldatensatzgröße in Byte Der Wert muss entweder ein Vielfaches der Größe des Datenträgersektors oder eine Größe sein, die gleichmäßig in die Größe des Datenträgersektors passt.
MaxLogPerBuffer 8192 Maximale Protokolldatensatzgröße in Byte Dieser Wert darf 64.000 nicht überschreiten. Der Wert muss ein Vielfaches der Größe des Datenträgersektors sein.
RollbackChance 100 Die Wahrscheinlichung, dass ein In-Memory-Vorgang auftritt, der dazu führt, dass ein Rollbackvorgang ausgeführt wird. Wenn dieser Rollbackvorgang auftritt, schreibt SQL Server nicht in die Protokolldatei.
SleepAfter 5 Ruhezeit nach jedem Zyklus in Millisekunden

AuditUser-Abschnitt

Das SQLIOSim-Hilfsprogramm verwendet die Werte, die Sie im AuditUser Abschnitt angeben, um DBCC-Aktivitäten zu simulieren, um die Informationen zur Seite zu lesen und zu überwachen. Die Überprüfung erfolgt auch dann, wenn der Wert des UserCount Parameters auf 0.

Parameter Standardwert Beschreibung Kommentare
UserCount 2 Anzahl der Überwachungsthreads Der Wert darf den folgenden Wert nicht überschreiten: CPUCount*1023-100.
Die Gesamtzahl aller Benutzer kann diesen Wert nicht überschreiten. Ein Wert von 0 bedeutet, dass Sie keine Benutzer mit zufälligem Zugriff erstellen können. Ein Wert von -1 bedeutet, dass Sie die automatische Konfiguration des Werts verwenden müssen: min(CPUCount*2, 8).
HINWEIS : Ein SQL Server-System kann Tausende von Sitzungen haben. Die meisten Sitzungen verfügen nicht über aktive Anforderungen. Verwenden Sie die count(*) Funktion in Abfragen für den sys.dm_exec_requests DMV als Basisplan zum Einrichten dieses Testparameterwerts.

CPUCount hier bezieht sich auf den Wert des CPUCount Parameters im CONFIG Abschnitt.

Der min(CPUCount*2, 8) Wert führt zu den kleineren Werten zwischen CPUCount*2 und 8.
BuffersValidated 64
DelayAfterCycles 2 Anwenden des Parameters "AuditDelay ", nachdem die Anzahl der Puffervalidated-Zyklen abgeschlossen wurde
AuditDelay 200 Anzahl der Millisekunden, die nach jedem DelayAfterCycles Vorgang gewartet werden sollen

ReadAheadUser-Abschnitt

Das SQLIOSim-Hilfsprogramm verwendet die im ReadAheadUser Abschnitt angegebenen Werte, um SQL Server-Lese-Ahead-Aktivität zu simulieren. SQL Server nutzt lese-ahead-Aktivitäten, um asynchrone E/A-Funktionen zu maximieren und Abfrageverzögerungen zu begrenzen.

Parameter Standardwert Beschreibung Kommentare
UserCount 2 Anzahl der Lese-/Vorlesethreads Der Wert darf den folgenden Wert nicht überschreiten: CPUCount*1023-100.
Die Gesamtzahl aller Benutzer kann diesen Wert nicht überschreiten. Ein Wert von 0 bedeutet, dass Sie keine Benutzer mit zufälligem Zugriff erstellen können. Ein Wert von -1 Bedeutet, dass Sie die automatische Konfiguration des folgenden Werts verwenden müssen: min(CPUCount*2, 8).
HINWEIS : Ein SQL Server-System kann Tausende von Sitzungen haben. Die meisten Sitzungen verfügen nicht über aktive Anforderungen. Verwenden Sie die count(*) Funktion in Abfragen für den sys.dm_exec_requests DMV als Basisplan zum Einrichten dieses Testparameterwerts.

CPUCount hier bezieht sich auf den Wert des CPUCount Parameters im ABSCHNITT CONFIG.

Der min(CPUCount*2, 8) Wert führt zu den kleineren Werten zwischen CPUCount*2 und 8.
BuffersRAMin 32 Minimale Anzahl von Seiten pro Zyklus zu lesen Der Minimalwert ist 0. Der Maximalwert ist durch den Systemspeicher begrenzt.
BuffersRAMax 64 Maximale Anzahl von Seiten, die pro Zyklus gelesen werden sollen SQL Server Enterprise-Editionen können bis zu 1.024 Seiten in einer einzigen Anforderung lesen. Wenn Sie SQL Server auf einem Computer installieren, auf dem viele CPU-, Arbeitsspeicher- und Datenträgerressourcen vorhanden sind, empfiehlt es sich, die Dateigröße und die Lese-/Vorlesegröße zu erhöhen.
DelayAfterCycles 2 Anwenden des RADelay Parameters nach Abschluss der angegebenen Anzahl von Zyklen
RADelay 200 Anzahl der Millisekunden, die nach jedem DelayAfterCycles Vorgang gewartet werden sollen

BulkUpdateUser-Abschnitt

Das SQLIOSim-Hilfsprogramm verwendet die Werte, die Sie im BulkUpdateUser Abschnitt angeben, um Massenvorgänge zu simulieren, z SELECT...INTO . B. Vorgänge und BULK INSERT Vorgänge.

Parameter Standardwert Beschreibung Kommentare
UserCount -1 Anzahl der BULK UPDATE Threads Der Wert darf den folgenden Wert nicht überschreiten: CPUCount*1023-100
Ein Wert von -1 bedeutet, dass Sie die automatische Konfiguration des folgenden Werts verwenden müssen: min(CPUCount*2, 8)
HINWEIS : Ein SQL Server-System kann Tausende von Sitzungen haben. Die meisten Sitzungen verfügen nicht über aktive Anforderungen. Verwenden Sie die count(*) Funktion in Abfragen für den sys.dm_exec_requests DMV als Basisplan zum Einrichten dieses Testparameterwerts.

CPUCount hier bezieht sich auf den Wert des CPUCount Parameters im CONFIG Abschnitt.

Der min(CPUCount*2, 8) Wert führt zu den kleineren Werten zwischen CPUCount*2 und 8.
BuffersBUMin 64 Minimale Anzahl von Seiten, die pro Zyklus aktualisiert werden sollen
BuffersBUMax 128 Maximale Anzahl von Seiten, die pro Zyklus aktualisiert werden sollen Der Minimalwert ist 0. Der Maximalwert ist durch den Systemspeicher begrenzt.
DelayAfterCycles 2 Anwenden des BUDelay Parameters nach Abschluss der angegebenen Anzahl von Zyklen
BUDelay 10 Anzahl der Millisekunden, die nach jedem DelayAfterCycles Vorgang gewartet werden sollen

ShrinkUser-Abschnitt

Das SQLIOSim-Hilfsprogramm verwendet die Werte, die Sie im ShrinkUser Abschnitt angeben, um DBCC-Schrumpfvorgänge zu simulieren. Das SQLIOSim-Hilfsprogramm kann auch den ShrinkUser Abschnitt verwenden, um die Datei zu vergrößern.

Parameter Standardwert Beschreibung
MinShrinkInterval 120 Minimales Intervall zwischen Verkleinerungsvorgängen in Sekunden
MaxShrinkInterval 600 Maximales Intervall zwischen Verkleinerungsvorgängen in Sekunden
MinExtends 1 Minimale Anzahl von Schritten, um die das SQLIOSim-Dienstprogramm vergrößert oder verkleinern wird die Datei
MaxExtends 20 Maximale Anzahl von Schritten, um die das SQLIOSim-Dienstprogramm vergrößert oder verkleinern wird die Datei

Konfigurations- .ini Dateikommentare

Das Semikolonzeichen (;) am Anfang einer Zeile in der Konfigurationsdatei .ini Datei bewirkt, dass die Zeile als einzelner Kommentar behandelt wird.

Dateierstellung

Das SQLIOSim-Hilfsprogramm erstellt separate Datendateien und Protokolldateien, um die E/A-Muster zu simulieren, die SQL Server in seiner Datendatei und seiner Protokolldatei generiert. Das SQLIOSim-Hilfsprogramm verwendet nicht das SQL Server-Modul, um Stressaktivitäten auszuführen. Daher können Sie das SQLIOSim-Hilfsprogramm verwenden, um einen Computer zu testen, bevor Sie SQL Server installieren.

Stellen Sie beim Ausführen des SQLIOSim-Hilfsprogramms sicher, dass Sie denselben Dateispeicherort angeben, den Sie für Ihre SQL Server-Datenbankdateien verwenden. In diesem Fall simuliert das Hilfsprogramm den gleichen E/A-Pfad wie Ihre SQL Server-Datenbank.

Sie können die Komprimierungs- oder Verschlüsselungsattribute für die vorhandenen Testdateien aktivieren. Sie können diese Attribute auch für das vorhandene Verzeichnis aktivieren, in dem die Testdateien erstellt werden. Die entsprechenden Optionen zum Aktivieren dieser Attribute befinden sich im Dialogfeld "Eigenschaften " für eine Datei oder ein Verzeichnis.

Standardmäßig erstellt das SQLIOSim-Hilfsprogramm Testdateien mit den Dateinamenerweiterungen MDX und LDX . Daher überschreiben diese Dateien keine vorhandenen Daten und Protokolldateien.

Warnung

Geben Sie nicht die tatsächlichen SQL Server-Datenbankdateien für Tests an. Das SQLIOSim-Hilfsprogramm überschreibt die Daten mit zufälligen Testmustern, und Ihre tatsächlichen SQL Server-Daten gehen verloren.

SQLIOSim-Fehlerprotokoll und -Behandlung

Das SQLIOSim-Hilfsprogramm erstellt die Fehlerprotokolldatei an einem der folgenden Speicherorte:

  • Der Speicherort, den Sie im Protokollstartparameter angeben
  • Der Speicherort, den Sie in der Zeile in der ErrorFile= datei Sqliosim.cfg.ini angeben

Das SQLIOSim.log.xml Fehlerprotokoll enthält Details zur Ausführung. Zu diesen Details gehören Fehlerinformationen. Überprüfen Sie das Protokoll sorgfältig auf Fehlerinformationen und Warnungsinformationen.

Notiz

Wenn im SQLIOSim-Hilfsprogramm ein Fehler auftritt, empfehlen wir, dass Sie Ihren Hardwarehersteller bitten, die Ursache des Problems zu ermitteln. Das Problem kann auch durch einen Gerätetreiber, einen Dateisystemfiltertreiber (z. B. Virenschutz) oder das Betriebssystem verursacht werden.

Mehrere Kopien

Das SQLIOSim-Hilfsprogramm umfasst Tests auf mehreren Dateiebenen und Tests auf mehreren Benutzerebenen. Das SQLIOSim-Hilfsprogramm erfordert nicht mehrere Aufrufe. Sie können mehrere Kopien des SQLIOSim-Hilfsprogramms ausführen, wenn die folgenden Bedingungen erfüllt sind:

  • Alle Kopien verweisen auf eindeutige Testdateien pro Instanz des Hilfsprogramms.
  • Der MaxMemoryMB Parameter jeder Instanz stellt einen nicht überlappenden Speicherbereich bereit, der für jede Instanz ausreichend ist.

Die Summe des MaxMemoryMB Parameters für jede Instanz muss kleiner oder gleich dem gesamten physischen Speicher sein. Einige Testphasen, z. B. die Prüfpunktsimulation, können speicherintensiv sein und können nicht genügend Arbeitsspeicherbedingungen erzeugen, wenn Sie mehrere Kopien ausführen. Wenn Fehler im Arbeitsspeicher auftreten, können Sie die Anzahl der ausgeführten Hilfskopien verringern.

References