Verwenden des Hilfsprogramms SQLIOSim zum Simulieren SQL Server Aktivität auf einem Datenträgersubsystem
In diesem Artikel wird beschrieben, wie Sie das Hilfsprogramm SQLIOSim verwenden, um Belastungstests für Datenträgersubsysteme durchzuführen, um 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 für Datenträgersubsysteme durchzuführen, die SQL Server verwenden. Diese SQLIOSim-Tests simulieren Lese-, Schreib-, Prüfpunkt-, Sicherungs-, Sortier- und Read-Ahead-Aktivitäten von Microsoft SQL Server. Weitere Informationen zu SQL Server E/A-Mustern finden Sie unter SQL Server E/A-Grundlagen, Kapitel 2. Das Hilfsprogramm SQLIOSim führt diese Simulation unabhängig von der SQL Server-Engine aus.
Das primäre Ziel der E/A-Simulationstests besteht darin, die Zuverlässigkeit des zugrunde liegenden E/A-Subsystems sicherzustellen, bevor Ihr SQL Server es verwendet. SQLIOSim interagiert nicht mit SQL Server und erfordert nicht einmal SQL Server, um ausgeführt zu werden. In den meisten Fällen wird empfohlen, SQLIOSim zu verwenden, wenn SQL Server nicht ausgeführt wird, um einen Wettbewerb um den E/A-Durchsatz zwischen den beiden Anwendungen zu vermeiden. Achten Sie sehr darauf, nicht auf die tatsächlichen SQL Server Datenbankdateien in Ihrem SQLIOSim-Test zu verweisen oder diese zu verwenden, da Sie sie überschreiben können.
Um eine angemessene Datenintegrität aufrechtzuerhalten, empfehlen wir Ihnen, Belastungstests ihres E/A-Subsystems durchzuführen, bevor Sie SQL Server auf neuer Hardware bereitstellen. Das Hilfsprogramm SQLIOSim simuliert die Lese- und Schreibmuster und die Problemidentifikationstechniken von SQL Server. Zum Ausführen dieser Aufgaben simuliert das Hilfsprogramm SQLIOSim die Benutzeraktivität und die Systemaktivität eines SQL Server Systems.
Das Hilfsprogramm SQLIOSim garantiert oder garantiert keine Datensicherheit oder Integrität. Das Hilfsprogramm wurde entwickelt, um Baselinetests einer Systemumgebung bereitzustellen. Das Hilfsprogramm SQLIOSim kann potenzielle Datenintegritätsprobleme offenlegen.
Weitere Informationen zur Protokollierung und Datenspeicherung finden Sie unter Beschreibung der Protokollierungs- und Datenspeicherungsalgorithmen, die die Datensicherheit in SQL Server erweitern.
Wenn Sie Leistungsvergleichstests durchführen müssen und die E/A-Durchsatzkapazität des Speichersystems ermitteln möchten, verwenden Sie stattdessen das Tool Diskspd .
Das Hilfsprogramm SQLIOSim ersetzt das Hilfsprogramm SQLIOStress, 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 die Ausführung ohne Benutzerinteraktion konfigurieren. Zu dieser Konfiguration 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.exelä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 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 möchten, und um die Zuverlässigkeit des E/A-Subsystems sicherzustellen. 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.exeund optional eine oder mehrere der Konfigurationsdateien, wenn Sie vorkonfigurierte Einstellungen verwenden möchten. Führen Sie dann die Testsimulation auf diesem Computer aus.
Verwenden von SQLIOSim
Sie benötigen den SQL Server Dienst nicht, der ausgeführt wird, während Sie SQLIOSim ausführen. Tatsächlich wird empfohlen, SQL Server nicht auszuführen, während SQLIOSim ausgeführt wird, da sie mit E/A-Ressourcen konkurrieren können.
Warnung
Geben Sie nicht die tatsächlichen SQL Server Datenbankdateien zum Testen an. Das Hilfsprogramm SQLIOSim überschreibt die Daten mit zufälligen Testmustern, und Ihre tatsächlichen SQL Server Daten gehen verloren.
Die nächsten Beispiele veranschaulichen, wie SQLIOSim über die GUI und die Befehlszeile ausgeführt wird.
Beispiel 1: Verwenden der GUI
Wechseln Sie zu C:\Programme\Microsoft SQL Server\MSSQLXX.<InstanceName>\MSSQL\Binn.
Starten Sie die anwendungSQLIOSIM.EXE . Sie sehen das Fenster Dateien und Konfiguration , das einige Standardeinstellungen enthält. Sie können diese Einstellungen an Ihre Konfigurationsanforderungen anpassen.
Markieren Sie die erste mdx-DateiC:\temp\sqliosim\sqliosim.mdx in der Liste. Diese Datei entspricht einer Datendatei.
Ändern Sie die Dateieinstellungen, indem Sie den Speicherort, die Größe, die maximale Größe oder das Inkrement ändern. Lassen Sie die Option Protokolldatei deaktiviert, da Sie eine Datendatei simulieren möchten. Wählen Sie dann die Schaltfläche Übernehmen aus.
Das Beispiel zeigt, wie der Speicherort der Datei in D:\temp\sqliosim\sqliosim.mdx geändert wird, die Größe auf 2048 MB, die maximale Größe auf 4096 MB und die Inkrementgröße auf 64 MB festgelegt ist.
Ändern Sie die zweite Datei mit dem Suffix ldx . Diese Datei stellt das Äquivalent einer Transaktionsprotokolldatei dar. Achten Sie darauf, dass das Kontrollkästchen Protokolldatei aktiviert ist. Wählen Sie Übernehmen aus, wenn Sie fertig sind.
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, Anwenden auszuwählen. Hier ist ein Beispiel:
Wenn Sie mit Ihrer Konfiguration zufrieden sind, wählen Sie die Schaltfläche OK aus.
Wählen Sie Simulator>Start aus, um die SQL E/A-Simulation auszuführen. Alternativ können Sie F12 oder die schaltfläche ganz links mit einem grünen Kreis auswählen.
Warten Sie, bis die Simulation abgeschlossen ist, und überprüfen Sie die Ausgabe.
Beispiel 2: Verwenden eines Befehlszeilentools und einer Konfigurationsdatei
Ändern Sie die sqliosim.default.cfg.ini-Datei , indem Sie die Kommentare für die
File1
Abschnitte und entfernen undFile2
dieFileName
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
Führen Sie SQLIOSIM.COM mithilfe der Konfigurationsdatei C:\temp\sqliosimconfig\sqliosim.default.cfg.iniaus:
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 den -dir
Switch 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 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 Von Befehlszeilenparametern
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
Datei |
Überschreiben Sie die Sqliosim.cfg.ini Standardkonfigurationsdatei. Das Hilfsprogramm SQLIOSim gibt einen Fehler zurück, wenn das Hilfsprogramm die Datei nicht finden kann. |
-save
Datei |
Speichern Sie die resultierende Konfiguration in der Konfigurationsdatei. Sie können diese Option verwenden, um die Anfänglichkonfigurationsdatei zu erstellen. |
-log
Datei |
Geben Sie den Namen der Fehlerprotokolldatei und den Pfad der Fehlerprotokolldatei an. Der Standarddateiname ist Sqliosim.log.xml. |
-dir
dir |
Legen Sie den Speicherort fest, an dem die Datendatei (.mdf) und die Protokolldatei (LDF) erstellt werden sollen. Sie können diesen Befehl mehrmals ausführen. In den meisten Fällen ist dieser Speicherort ein Laufwerkstamm oder ein Volumeeinbindungspunkt. Dieser Speicherort kann ein langer Pfad oder ein UNC-Pfad sein. |
-d
Sekunden |
Legen Sie die Dauer der Standard Ausführung fest. Dieser Wert schließt die Vorbereitungsphase und die Überprüfungsphase aus. |
-size
MB |
Legen Sie die Anfangsgröße der Datendatei in Megabyte (MB) fest. Die Datei kann bis zu doppelt so groß sein wie die Anfangsgröße. Die Größe der Protokolldatei wird als die 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 im Voraus 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 Abschnitt Datei<N> der Konfigurationsdatei.
Beispielkonfigurationsdateien
Fünf Beispielkonfigurationsdateien sind verfügbar, wenn Sie sie für automatisierte SQLIOSim-Ausführungen 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-Drosselung entfernen – Minimieren der Wartezeit zum Erhöhen des E/A-Volumens |
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 – Die E/A-Zieldauer ist groß genug, um viele ausstehende E/A-Anforderungen zu ermöglichen. – Deaktivieren von Scatter/Gather-APIs, um separate E/A-Anforderungen für jede 8-KB-Seite ausstellen – Erstellen einer nicht verkleinerbaren Datei mit 1 GB – Erstellen eines nicht verkleinerbaren sekundären Sparsestreams 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 |
Einschränkungen für Parameterwerte
- Wenn der Name des Parameters angibt, dass der Parameter ein Verhältnis oder ein Prozentsatz ist, wird der Wert des Parameters als Prozentsatz oder als Verhältnis dividiert durch 0,01 ausgedrückt. Der Wert des
CacheHitRatio
Parameters ist z. B10 percent
. . Dieser Wert wird als1000
ausgedrückt, da 10 dividiert durch 0,01 gleich ist1000
. Der Maximalwert eines Prozentparameters ist10000
. - Wenn der Parametertyp numerisch ist und Sie dem Parameter einen nicht numerischen Wert zuweisen, legt das SQLIOSim-Hilfsprogramm den Parameter auf fest
0
. - Wenn der Parametertyp ist
Boolean
, sindtrue
die gültigen Werte, die Sie dem Parameter zuweisen können, undfalse
. Darüber hinaus wird bei den Werten die Groß-/Kleinschreibung beachtet. Das Hilfsprogramm SQLIOSim ignoriert alle ungültigen Werte. - Wenn ein Parameterpaar einen Minimal- und einen Höchstwert angibt, darf der Mindestwert den Maximalwert nicht überschreiten. Beispielsweise darf der Wert des
MinIOChainLength
Parameters nicht größer als der Wert desMaxIOChainLength
Parameters sein. - Wenn der Parameter eine Anzahl von Seiten angibt, überprüft das Hilfsprogramm SQLIOSim den Wert, den Sie dem Parameter zuweisen, anhand der Datei, die das SQLIOSim-Hilfsprogramm verarbeitet. Das Hilfsprogramm SQLIOSim führt diese Überprüfung durch, um sicherzustellen, dass die Anzahl der Seiten die Dateigröße nicht überschreitet.
Konfigurationsdateiabschnitte
Die Konfigurationsdatei enthält mehrere Abschnitte:
- [CONFIG]
- [RandomUser]
- [AuditUser]
- [ReadAheadUser]
- [BulkUpdateUser]
- [ShrinkUser]
-
[Datei<N>] (der Platzhalter
<N>
ist eine Zahl)
Jeder dieser Abschnitte wird im folgenden Abschnitt beschrieben.
CONFIG-Abschnitt
Das Hilfsprogramm SQLIOSim verwendet die Werte, die Sie im Abschnitt CONFIG der SQLIOSim-Konfigurationsdatei angeben, um globales Testverhalten festzulegen.
Parameter | Standardwert | Beschreibung | Kommentare |
---|---|---|---|
ErrorFile |
sqliosim.log.xml | Name der Protokolldatei des XML-Typs | |
CPUCount |
Anzahl der CPUs auf dem Computer | Anzahl der zu erstellenden logischen CPUs | Der Höchstwert beträgt 64 CPUs. |
Affinity |
0 | Physische CPU-Affinitätsmaske für logische CPUs | Die Affinitätsmaske sollte innerhalb der aktiven CPU-Maske vorhanden sein. Der Wert 0 bedeutet, dass alle verfügbaren CPUs verwendet werden. |
MaxMemoryMB |
Verfügbarer physischer Arbeitsspeicher beim Starten des Hilfsprogramms SQLIOSim | Größe des Pufferpools in MB | Der Wert darf die Gesamtmenge des physischen Arbeitsspeichers auf dem Computer nicht überschreiten. |
StopOnError |
true | Beendet die Simulation, wenn der erste Fehler auftritt | |
TestCycles |
1 | Anzahl der auszuführenden vollständigen Testzyklen | Der Wert gibt 0 eine unendliche Anzahl von Testzyklen an. |
TestCycleDuration |
300 | Dauer eines Testzyklus in Sekunden, mit Ausnahme des Auditdurchlaufs am Ende des Zyklus | |
CacheHitRatio |
1000 | 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. Der Wert 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 auf eine Drosselung abzielen | 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-Abschlusszeit zu verbessern. |
AllowIOBursts |
true | Zulassen, dass die Drosselung deaktiviert wird, um viele E/A-Anforderungen zu senden | E/A-Bursts werden während der ersten Aktualisierung, des anfänglichen Prüfpunkts und der letzten Prüfpunktdurchläufe am Ende der Testzyklen aktiviert. Der MaxOutstandingIO Parameter wird weiterhin berücksichtigt. Sie können lange E/A-Warnungen erwarten. |
NoBuffering |
true | Verwenden der FILE_FLAG_NO_BUFFERING Option |
SQL Server öffnet Datenbankdateien mithilfe FILE_FLAG_NO_BUFFERING == true von . Einige Hilfsprogramme 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 der FILE_FLAG_WRITE_THROUGH Option |
SQL Server öffnet Datenbankdateien mithilfe FILE_FLAG_WRITE_THROUGH == true von . Einige Hilfsprogramme und Dienste öffnen die Datenbankdateien jedoch mithilfe FILE_FLAG_WRITE_THROUGH == false von . Beispielsweise öffnet SQL Server Analysis Services die Datenbankdateien mithilfe FILE_FLAG_WRITE_THROUGH == false von . Um einen Server vollständig zu testen, führen Sie einen Test für jede Einstellung aus. |
ScatterGather |
true | Verwenden von ReadScatter - oder WriteGather -APIs |
Wenn dieser Parameter auf true festgelegt ist, wird der NoBuffering Parameter ebenfalls auf true festgelegt.SQL Server verwendet scatter/gather I/Os für die meisten E/A-Anforderungen. |
ForceReadAhead |
true | Ausführen eines Read-Ahead-Vorgangs auch dann, wenn die Daten bereits gelesen wurden | Das Hilfsprogramm SQLIOSim gibt den Lesebefehl auch dann aus, wenn sich die Datenseite bereits im Pufferpool befindet. Der Microsoft SQL Server Support hat die Einstellung true erfolgreich verwendet, um E/A-Probleme aufzudecken. |
DeleteFilesAtStartup |
true | Dateien beim Start löschen, wenn Dateien vorhanden sind | Eine Datei kann mehrere Datenströme enthalten. Nur Streams, die File <N> FileName im Eintrag angegeben sind, werden in der Datei abgeschnitten. Wenn der Standardstream angegeben ist, werden alle Streams 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 Hilfsprogramm SQLIOSim 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, indem es einen gültigen Datenmarker festlegt. SQL Server 2005 wird das Feature zur sofortigen Dateiinitialisierung für Datendateien verwendet. Wenn es sich bei der Datendatei um eine Protokolldatei handelt oder 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 ändern, um sicherzustellen, dass sowohl die sofortige Dateiinitialisierung als auch das Stempeln ohne Stempel ordnungsgemäß ausgeführt werden. |
Abschnitt "Datei<N> "
Das Hilfsprogramm SQLIOSim ist für mehrere Dateitests konzipiert. 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. Es kann auch einen sekundären Streamnamen und -typ enthalten. Der Parameter kann beispielsweise FileName auf file.mdf:stream2 festgelegt werden.HINWEIS In SQL Server 2005 verwenden DBCC-Vorgänge Datenströme. Es wird empfohlen, Streamtests 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-Hilfsprogramm die vorhandene Datei nicht. Wenn die vorhandene Datei kleiner ist, erweitert das Hilfsprogramm SQLIOSim die vorhandene Datei. |
MaxSize |
Kein Standardwert | Maximale Größe in MB | Eine Datei kann nicht größer werden als der Wert, 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 Hilfsprogramm SQLIOSim passt den Increment Parameter beim Start so an, dass die Situation eingerichtet wird: Increment * MaxExtents < MaxMemoryMB / NumberOfDataFiles .Wenn der Wert von Increment ist 0 , legt das SQLIOSim-Hilfsprogramm die Datei als nicht verkleinerbar fest. |
Shrinkable |
false | Gibt an, ob die Datei verkleinert oder erweitert werden kann. | Wenn Sie den Increment Parameter auf 0 festlegen, legen Sie fest, dass die Datei nicht verkleinert werden kann. In diesem Fall müssen Sie den Shrinkable Parameter auf false festlegen. Wenn Sie den Increment Parameter auf einen anderen Wert als 0 festlegen, legen Sie fest, dass die Datei verkleinert werden kann. In diesem Fall müssen Sie den Shrinkable Parameter auf true festlegen. |
Sparse |
false | Gibt an, ob das Sparse-Attribut für die Dateien festgelegt werden soll. | Bei vorhandenen Dateien löscht das Hilfsprogramm SQLIOSim das Sparse-Attribut nicht, wenn Sie den Sparse Parameter auf false festlegen.SQL Server 2005 verwendet Sparsedateien, um Momentaufnahme Datenbanken und die sekundären DBCC-Streams zu unterstützen. Es wird empfohlen, sowohl die Sparsedatei als auch die Streams zu aktivieren und dann einen Testdurchlauf durchzuführen. HINWEIS Wenn Sie für die Dateieinstellungen festlegen Sparse = true , geben Sie nicht im config Abschnitt anNoBuffering = false . Wenn Sie diese beiden in Konflikt stehenden Kombinationen verwenden, erhalten Sie möglicherweise eine Fehlermeldung, die dem folgenden aus dem Tool ähnelt:Error:-=====Error: 0x80070467 Fehlertext: Beim Zugriff auf die Festplatte ist ein Datenträgervorgang auch nach Wiederholungen fehlgeschlagen. Beschreibung: Fehler bei der Pufferüberprüfung auf der Seite "C:\SQLIOSim.mdx": 28097 |
LogFile |
false | Gibt an, ob eine Datei Benutzer- oder Transaktionsprotokolldaten enthält. | Sie sollten mindestens eine Protokolldatei definieren. |
RandomUser-Abschnitt
Das Hilfsprogramm SQLIOSim verwendet die werte, die RandomUser
Sie im 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 von Threads mit zufälligem Zugriff, die gleichzeitig ausgeführt werden | Der Wert darf den Wert nicht überschreiten: CPUCount*1023-100 .Die Gesamtzahl aller Benutzer darf diesen Wert ebenfalls nicht überschreiten. Der Wert Null (0) bedeutet, dass Sie keine Benutzer mit wahlfreiem Zugriff erstellen können. Der Wert -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 enthalten. Die meisten Sitzungen enthalten keine aktiven Anforderungen. Verwenden Sie die count(*) -Funktion in Abfragen für die sys.dm_exec_requests dynamische Verwaltungssicht (Dynamic Management View, DMV) als Baseline zum Festlegen dieses Testparameterwerts.CPUCount hier bezieht sich auf den Wert des CPUCount Parameters im CONFIG Abschnitt.Der min(CPUCount*2, 8) Wert ergibt den kleineren der Werte zwischen CPUCount*2 und 8 . |
JumpToNewRegionPercentage |
500 | Die Möglichkeit eines Sprungs zu einem neuen Bereich der Datei | Der Anfang der Region wird nach dem Zufallsprinzip 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 lesen. Der Mindestwert ist 0 . Der Maximalwert wird durch den Systemspeicher begrenzt.In der Regel führt eine 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 Kette mit zufälliger Länge 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 Bytes | Der Wert muss entweder ein Vielfaches der Sektorgröße auf dem Datenträger oder eine Größe sein, die gleichmäßig in die Sektorgröße auf dem Datenträger passt. |
MaxLogPerBuffer |
8192 | Maximale Protokolldatensatzgröße in Bytes | Dieser Wert darf 64.000 nicht überschreiten. Der Wert muss ein Vielfaches der Sektorgröße auf dem Datenträger sein. |
RollbackChance |
100 | Die Möglichkeit, dass ein In-Memory-Vorgang auftritt, der zu einem Rollbackvorgang führt. | Wenn dieser Rollbackvorgang auftritt, schreibt SQL Server nicht in die Protokolldatei. |
SleepAfter |
5 | Ruhezeit nach jedem Zyklus in Millisekunden |
Abschnitt "AuditUser"
Das Hilfsprogramm SQLIOSim verwendet die Werte, die Sie im Abschnitt angeben, um die AuditUser
DBCC-Aktivität zu simulieren, um die Informationen zur Seite zu lesen und zu überwachen. Die Überprüfung erfolgt auch, wenn der Wert des UserCount
Parameters auf 0
festgelegt ist.
Parameter | Standardwert | Beschreibung | Kommentare |
---|---|---|---|
UserCount |
2 | Anzahl von Überwachungsthreads | Der Wert darf den folgenden Wert nicht überschreiten: CPUCount*1023-100 .Die Gesamtzahl aller Benutzer darf diesen Wert ebenfalls nicht überschreiten. Der Wert bedeutet 0 , dass Sie keine Benutzer mit wahlfreiem Zugriff erstellen können. Der Wert -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 enthalten. Die meisten Sitzungen enthalten keine aktiven Anforderungen. Verwenden Sie die count(*) -Funktion in Abfragen für die sys.dm_exec_requests DMV als Baseline zum Festlegen dieses Testparameterwerts.CPUCount hier bezieht sich auf den Wert des CPUCount Parameters im CONFIG Abschnitt.Der min(CPUCount*2, 8) Wert ergibt den kleineren der Werte zwischen CPUCount*2 und 8 . |
BuffersValidated |
64 | ||
DelayAfterCycles |
2 | Wenden Sie den Parameter AuditDelay an, nachdem die Anzahl der PufferValidated-Zyklen abgeschlossen wurde. | |
AuditDelay |
200 | Anzahl von Millisekunden, die nach jedem DelayAfterCycles Vorgang gewartet werden sollen |
ReadAheadUser-Abschnitt
Das Hilfsprogramm SQLIOSim verwendet die im ReadAheadUser
Abschnitt angegebenen Werte, um SQL Server Read-Ahead-Aktivität zu simulieren. SQL Server nutzt die Read-Ahead-Aktivität, um asynchrone E/A-Funktionen zu maximieren und Abfrageverzögerungen zu begrenzen.
Parameter | Standardwert | Beschreibung | Kommentare |
---|---|---|---|
UserCount |
2 | Anzahl der Read-Ahead-Threads | Der Wert darf den folgenden Wert nicht überschreiten: CPUCount*1023-100 .Die Gesamtzahl aller Benutzer darf diesen Wert ebenfalls nicht überschreiten. Der Wert bedeutet 0 , dass Sie keine Benutzer mit wahlfreiem Zugriff erstellen können. Der Wert -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 enthalten. Die meisten Sitzungen enthalten keine aktiven Anforderungen. Verwenden Sie die count(*) -Funktion in Abfragen für die sys.dm_exec_requests DMV als Baseline zum Festlegen dieses Testparameterwerts.CPUCount hier bezieht sich auf den Wert des CPUCount Parameters im Abschnitt CONFIG.Der min(CPUCount*2, 8) Wert ergibt den kleineren der Werte zwischen CPUCount*2 und 8 . |
BuffersRAMin |
32 | Minimale Anzahl von Seiten, die pro Zyklus gelesen werden sollen | Der Mindestwert ist 0 . Der Maximalwert wird 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 einzelnen Anforderung lesen. Wenn Sie SQL Server auf einem Computer installieren, der über viele CPU-, Arbeitsspeicher- und Datenträgerressourcen verfügt, wird empfohlen, die Dateigröße und die Read-Ahead-Größe zu erhöhen. |
DelayAfterCycles |
2 | Anwenden des RADelay Parameters nach Abschluss der angegebenen Anzahl von Zyklen |
|
RADelay |
200 | Anzahl von Millisekunden, die nach jedem DelayAfterCycles Vorgang gewartet werden sollen |
Abschnitt "BulkUpdateUser"
Das Hilfsprogramm SQLIOSim verwendet die Werte, die Sie im BulkUpdateUser
Abschnitt angeben, um Massenvorgänge wie SELECT...INTO
Vorgänge und BULK INSERT
Vorgänge zu simulieren.
Parameter | Standardwert | Beschreibung | Kommentare |
---|---|---|---|
UserCount |
-1 | Anzahl von BULK UPDATE Threads |
Der Wert darf den folgenden Wert nicht überschreiten: CPUCount*1023-100 Der Wert -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 enthalten. Die meisten Sitzungen enthalten keine aktiven Anforderungen. Verwenden Sie die count(*) -Funktion in Abfragen für die sys.dm_exec_requests DMV als Baseline zum Festlegen dieses Testparameterwerts.CPUCount hier bezieht sich auf den Wert des CPUCount Parameters im CONFIG Abschnitt.Der min(CPUCount*2, 8) Wert ergibt den kleineren der Werte 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 Mindestwert ist 0 . Der Maximalwert wird durch den Systemspeicher begrenzt. |
DelayAfterCycles |
2 | Anwenden des BUDelay Parameters nach Abschluss der angegebenen Anzahl von Zyklen |
|
BUDelay |
10 | Anzahl von Millisekunden, die nach jedem DelayAfterCycles Vorgang gewartet werden sollen |
Abschnitt "ShrinkUser"
Das Hilfsprogramm SQLIOSim verwendet die Werte, die Sie im ShrinkUser
Abschnitt angeben, um DBCC-Verkleinerungsvorgänge zu simulieren. Das Hilfsprogramm SQLIOSim 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-Hilfsprogramm die Datei vergrößert oder verkleinern wird |
MaxExtends |
20 | Maximale Anzahl von Inkrementen, um die das SQLIOSim-Hilfsprogramm die Datei vergrößert oder verkleinern wird |
Konfigurations- .ini Dateikommentare
Das Semikolon (;) am Anfang einer Zeile in der Konfigurationsdatei.ini bewirkt, dass die Zeile als einzelner Kommentar behandelt wird.
Dateierstellung
Das Hilfsprogramm SQLIOSim erstellt separate Datendateien und Protokolldateien, um die E/A-Muster zu simulieren, die SQL Server in der Datendatei und der zugehörigen Protokolldatei generiert. Das Hilfsprogramm SQLIOSim verwendet die SQL Server-Engine nicht, um Stressaktivitäten auszuführen. Daher können Sie das Hilfsprogramm SQLIOSim verwenden, um einen Computer zu testen, bevor Sie SQL Server installieren.
Wenn Sie das Hilfsprogramm SQLIOSim ausführen, stellen Sie sicher, dass Sie denselben Dateispeicherort angeben, den Sie für Ihre SQL Server Datenbankdateien verwenden. In diesem Fall simuliert das Hilfsprogramm denselben 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 Hilfsprogramm SQLIOSim Testdateien mit den Dateinamenerweiterungen MDX und LDX . Aus diesem Grund überschreiben diese Dateien keine vorhandenen Daten- und Protokolldateien.
Warnung
Geben Sie nicht die tatsächlichen SQL Server Datenbankdateien zum Testen an. Das Hilfsprogramm SQLIOSim überschreibt die Daten mit zufälligen Testmustern, und Ihre tatsächlichen SQL Server Daten gehen verloren.
SQLIOSim-Fehlerprotokoll und -Behandlung
Das Hilfsprogramm SQLIOSim erstellt die Fehlerprotokolldatei an einem der folgenden Speicherorte:
- Der Speicherort, den Sie im Protokollstartparameter angeben
- Der Speicherort, den Sie in der
ErrorFile=
Zeile in der Sqliosim.cfg.ini-Datei angeben.
Das SQLIOSim.log.xml Fehlerprotokoll enthält Details zur Ausführung. Diese Details enthalten Fehlerinformationen. Überprüfen Sie das Protokoll sorgfältig auf Fehler- und Warnungsinformationen.
Hinweis
Wenn im Hilfsprogramm SQLIOSim ein Fehler auftritt, empfehlen wir Ihnen, ihren Hardwarehersteller zu 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 Hilfsprogramm SQLIOSim bietet Tests auf mehreren Dateiebenen und Tests auf mehreren Benutzerebenen. Das Hilfsprogramm SQLIOSim erfordert nicht mehrere Aufrufe. Sie können mehrere Kopien des Hilfsprogramms SQLIOSim ausführen, wenn die folgenden Bedingungen erfüllt sind:
- Alle Kopien verweisen auf eindeutige Testdateien pro instance des Hilfsprogramms.
- Der
MaxMemoryMB
Parameter jedes instance stellt einen nicht überlappenden Speicherbereich bereit, der für jede instance ausreichend ist.
Die Summe des MaxMemoryMB
Parameters für jede instance muss kleiner oder gleich dem gesamten physischen Arbeitsspeicher sein. Einige Testphasen, z. B. die Prüfpunktsimulation, können arbeitsspeicherintensiv sein und zu Bedingungen mit nicht genügend Arbeitsspeicher führen, wenn Sie mehrere Kopien ausführen. Wenn Fehler aufgrund von nicht genügend Arbeitsspeicher auftreten, können Sie die Anzahl der ausgeführten Hilfsprogrammkopien verringern.