Wir haben kürzlich unsere Tempdb-Dateien auf eine neue SSD aufgeteilt und sehen:
5348 Vorkommen von E / A-Anforderungen, deren Ausführung in Datei [T: \ tempdb \ tempdb4.ndf] länger als 15 Sekunden dauert.
Dieser Fehler tritt mehrfach auf. Wir haben die Fehler nicht gesehen, als tempdb wieder auf seinem ursprünglichen RAID 5-Home war. Ich habe ein Tutorial zu SQLIO befolgt und denke, dass die SSD beim zufälligen Lesen / Schreiben mit 8 KB viel schneller sein sollte als die vorherigen RAID 5-Festplatten. Warum sehen wir diese Fehler?
Um zu beweisen, dass nicht alles in Ordnung ist, dauert die Batch-Datei, die wir über Nacht ausführen (wenn diese Fehler auftreten), 7 Stunden. Auf den alten Festplatten dauerte es 6,25 Stunden.
Die Festplatten befinden sich in einem direkt angeschlossenen Array. Das RAID5 für Daten, RAID 10 für Protokolle und ein freier Steckplatz, den wir für die SSD verwendet haben. RAID 5 und SSD sind für eine Blockgröße von 64 KB formatiert. Das Protokoll ist falsch auf 4 KB Blockgröße eingestellt (ich weiß - wird behoben, wenn ich eine Chance bekomme).
Dies sind die Ergebnisse von SQLIO:
T-Laufwerk (ssd)
Ios = 8 KB zufälliges Schreiben, IOs / Sek. = 31847,48, MBs / Sek. = 248,8
Ios = 8 KB zufälliges Lesen, IOs / Sek. = 76391,66, MBs / Sek. = 596,8
S-Laufwerk (RAID 5)
Ios = 8 KB zufälliges Schreiben, IOs / Sek. = 2601,3, MBs / Sek. = 20,32
Ios = 8 KB zufälliges Lesen, IOs / Sek. = 3138,45, MBs / Sek. = 24,51
Bei sequenziellen 64K-Lese- / Schreibvorgängen waren sie ungefähr gleich.
Tempdb ist in 4 1,5-GB-Dateien aufgeteilt (dies ist vor und nach dem Umzug gleich).
SQL Server 2012 ist auf SP3 gepatcht.
Haben Sie eine Idee, was dazu führen kann, dass all diese E / A-Fehler von SQL Server gemeldet werden?
Handelt es sich möglicherweise um ein Array- oder HBA-Treiberproblem? Muss eine einzelne Festplatte, die einem freien Steckplatz in einem direkt angeschlossenen Array hinzugefügt wurde, im Hinblick auf den Cache sorgfältig konfiguriert werden?