Ok, für alle Interessierten,
Wir haben das Problem in Question vor einigen Monaten einfach gelöst, indem wir direkt angeschlossene SSD-Laufwerke auf jedem der drei Server installiert und DB-Daten und -Protokolldateien von SAN auf diese SSD-Laufwerke verschoben haben
Hier eine Zusammenfassung darüber, was ich getan habe, um zu diesem Problem zu recherchieren (unter Verwendung von Empfehlungen aus allen Posts dieser Frage), bevor wir uns entschieden haben, SSD-Laufwerke zu installieren:
1) begann PerfMon-Indikatoren für folgende Laufwerke auf allen 3 Servern zu sammeln:
Disk F:
Ist eine logische Festplatte, die auf SAN basiert. Enthält MDF-Datendateien. Ist eine
Disk I:
logische Festplatte, die auf SAN basiert. Enthält LDF-Protokolldateien.
Disk T:
Ist eine direkt angehängte SSD, die ausschließlich für tempDB bestimmt ist
Das Bild unten zeigt Durchschnittswerte, die für einen Zeitraum von 2 Wochen gesammelt wurden
Disk I: (LDF)
hat so ein kleines E / A und die Latenz ist sehr gering, so dass Datenträger I: ignoriert werden
kann. Sie können sehen, dass er Disk T: (TempDB)
ein größeres E / A im Vergleich zu Disk F: (MDF)
und gleichzeitig eine viel bessere Latenz aufweist - 0 ms
Offensichtlich stimmt etwas nicht mit Datenträger F: Wo sich Datendateien befinden, weist er trotz niedriger E / A-Werte eine hohe Latenz und eine durchschnittliche Datenträgerschreibwarteschlange auf
2) Überprüfte Latenz für einzelne Datenbanken mit Abfrage von dieser Website
https://www.brentozar.com/blitz/slow-storage-reads-writes/
Nur wenige aktive Datenbanken auf dem Primärserver hatten eine Leselatenz von 150 bis 250 ms und eine Schreiblatenz von 150 bis 450 ms.
Interessanterweise hatten Master- und MSDB-Datenbankdateien eine Leselatenz von bis zu 90 ms. Ein weiteres Anzeichen ist, dass etwas mit SAN nicht stimmt
3) Es gab keine spezifischen Zeitpunkte
Während der Meldung "SQL Server hat Vorkommen festgestellt ..."
wurden keine Wartungs- oder plattenintensiven ETL-Vorgänge ausgeführt, als diese Meldungen protokolliert wurden
4) Windows-Ereignisanzeige
Es wurden keine anderen Einträge angezeigt, die auf das Problem hindeuten, außer "SQL Server hat Vorkommen festgestellt ...".
5) Überprüfung der 10 häufigsten Anfragen gestartet
Vom sp_BlitzCache (CPU, liest, etc.) und wenn möglich omptimieren
Keine übermäßigen E / A- Abfragen, die Unmengen von Daten verbrauchen und den Speicher stark beeinträchtigen würden, obwohl die
Indizierung in Datenbanken in Ordnung ist
6) Wir haben kein SAN-Team
Wir haben nur 1 Systemadministrator, der gelegentlich hilft.
Netzwerkpfad zu SAN - es ist multipathed, jeder von 3 Servern hat 2 Netzwerkkabel, die zu Switches und dann zu SAN führen, und es soll 1 Gigabyte / Sek. Sein
7) Es gab keine CrystalDiskMark-Ergebnisse
Oder andere Benchmark-Testergebnisse aus der Zeit, als die Server eingerichtet wurden. Daher weiß ich nicht, wie hoch die Geschwindigkeiten sein sollten, und es ist derzeit nicht möglich, einen Benchmark zu erstellen, um festzustellen, wie hoch die Geschwindigkeiten derzeit sind, da dies die Produktion beeinträchtigt hätte
8) Erweiterte Ereignissitzung für das Prüfpunktereignis für die betreffende Datenbank einrichten
Mithilfe der XE-Sitzung wurde festgestellt, dass der Checkpoint während der Meldung "SQL Server hat Vorkommen festgestellt ..." sehr langsam ablief (bis zu 90 Sekunden).
9) SQL Server-Fehlerprotokoll
Enthaltene "FlushCache" "Saturation" -Einträge
Diese sollen angezeigt werden, wenn die Checkpoint-Zeit für eine bestimmte Datenbank die Einstellungen für das Wiederherstellungsintervall überschreitet
Die Details zeigten, dass die Datenmenge, die der Checkpoint zu löschen versucht, gering ist und lange dauert. Die Gesamtgeschwindigkeit beträgt etwa 0,25 MB / s ... seltsam
10) Schließlich zeigt dieses Bild eine Tabelle zur Fehlerbehebung bei der Speicherung:
Anscheinend haben wir lediglich ein "Hardwareproblem: - Arbeiten Sie mit dem Systemadministrator / Hardwarehersteller zusammen, um etwaige Fehlkonfigurationen von SAN, alten / fehlerhaften Treibern, Controllern, Firmware usw. zu beheben."
In einer anderen Frage "Slow Checkpoint ..." Langsamer Checkpoint und 15-Sekunden-E / A-Warnungen im Flash-Speicher
Sean eine sehr gute Liste, welche Elemente auf Hardware- und Softwareebene überprüft werden müssen, um Fehler zu beheben
Unser Systemadministrator konnte nicht alle Elemente aus der Liste überprüfen, daher haben wir uns einfach dafür entschieden, einige Hardwarekomponenten in dieses Problem zu werfen - es war überhaupt nicht teuer
Auflösung:
Wir haben 1 TB SSD-Laufwerke bestellt und direkt auf Servern installiert
Da Verfügbarkeitsgruppen vorhanden sind, wurden DB-Datendateien auf sekundären Replikaten von SAN auf SSD migriert, anschließend ein Failover durchgeführt und Dateien auf früheren primären Replikaten migriert. Dies ermöglichte eine minimale Gesamtausfallzeit von weniger als 1 Minute
Jetzt verfügt jeder Server über eine lokale Kopie der DB-Daten, und es werden vollständige / Diff / Log-Sicherungen im erwähnten SAN durchgeführt.
In den Windows-Ereignisanzeige-Protokollen werden keine Meldungen mehr "SQL Server ist aufgetreten ..." und keine Sicherungen, Integritätsprüfungen mehr durchgeführt. Index-Neuerstellungen, Abfragen usw. haben erheblich zugenommen
Wie viel Leistung in Bezug auf die E / A-Latenz hat sich verbessert, seit wir DB-Dateien auf SSD migriert haben?
Verwendete Windows-Leistungsüberwachungsprotokolle 2 Wochen vor der Migration und 4 Wochen nach der Migration, um die Auswirkungen zu bewerten:
Weiter unten finden Sie einen Vergleich der Latenzstatistiken auf DB-Ebene (die erfassten virtuellen Dateistatistiken von SQL Server werden vor und nach der Migration verwendet).
Zusammenfassung
Die Migration von SAN auf direkt angeschlossene lokale SSDs hat sich gelohnt
Sie hatte einen großen Einfluss auf die Latenz des Speichers und verbesserte sich im Durchschnitt um mehr als 90% (insbesondere bei WRITE-Vorgängen). Wir haben keine 20-50-Sekunden-Spitzen mehr bei IO
Die Umstellung auf eine lokale SSD behebt nicht nur Probleme mit der Speicherleistung, sondern auch mit der Datensicherheit, um die ich mir Sorgen gemacht habe (wenn das SAN ausfällt, verlieren alle drei Server gleichzeitig ihre Daten).