Frage Warum sollte eine stark plattenintensive Anwendung in einem SAN schneller als auf einer physischen Festplatte ausgeführt werden?


Warum sollte eine stark plattenintensive Anwendung in einem SAN schneller als auf einer physischen Festplatte ausgeführt werden? Ich hätte erwartet, dass die physische Festplatte etwas schneller sein würde, aber tatsächlich lief der Prozess 100 Mal schneller, wenn das Arbeitslaufwerk auf eine Partition im SAN eingestellt war.

Wir gehen davon aus, dass das SAN schnell optimiert ist, um schnell zu sein, während die Einstellungen für die physische Festplatteneinstellung auf Betriebssystem (Solaris) basieren und nicht berührt wurden oder das Betriebssystem gepatcht wurde.

Während der höchsten Aktivität wurde die Datenträger-E / A zu 100% ausgeführt, und die Zeit zum Abschließen eines Schreibvorgangs betrug mehr als 2 Sekunden, da mehrere Prozesse gleichzeitig auf die Festplatte geschrieben wurden.

(Zur Information: Die Anwendung war Informatica PowerCenter)


21
2017-09-08 23:50


Ursprung




Antworten:


Ich bin überhaupt nicht überrascht. SAN-Arrays haben typischerweise eine Vielzahl von Festplatten beteiligt. Der begrenzende Faktor für Datenträger-E / A ist die Geschwindigkeit der einzelnen Datenträger und dieser Stapel. 6 Laufwerke lokal in einem RAID10 werden besser als 2, und 80 Laufwerke in einem SAN werden besser als 10 Laufwerke lokal ausführen. Es gibt natürlich Variablen, aber so sollte es funktionieren.

Auch wenn das SAN irgendwelche SSDs beteiligt, werden die Dinge wirklich zippy.


23
2017-09-09 00:29





Es ist fast sicher wegen Caching. Das DAS hat wahrscheinlich ein minimales Caching, wobei die meisten Enterprise SANs mehrere Gigabytes an Cache haben. Ich würde vermuten, dass die App den Cache des DAS sättigt, aber nicht die SANs.


15
2017-09-09 00:03



Die offensichtliche Latenz auf dem SAN wird länger als die DAS, aber der Gesamtdurchsatz ist im SAN bei all dessen Caching höher. Gute Antwort. - Matt
und dann gibt es oft einen Read-Ahead-Cache, so dass seine zufälligen Lese- / Schreibvorgänge den größten Erfolg haben und dann können Sie Schreibvorgänge zwischenspeichern, so dass nur zufällige Lesevorgänge betroffen sind, aber immer noch eine ziemlich kleine Verzögerung. - Silverfire
Ein ordnungsgemäß konfiguriertes Speichersubsystem im SAN, das nicht überlastet ist, sollte Ihnen zufällige Schreibzeiten von 1-2 ms geben. - MikeyB
@MikeyB Ich stimme dir nicht zu. 1-2ms schreiben in SAN scheint richtig. Aber die SAN-Konfiguration von Charles war 100-mal schneller als seine überlasteten physischen Festplatten (für letztere waren Schreibvorgänge> 2 Sekunden). Also ist selbst seine SAN-Leistung nicht so gut, bei 20ms statt 1-2ms ...? - Ellie Kesselman


Konzeptionell fühlt es sich immer so an, als würde das Serving von Disk aus SAN langsamer sein als das lokale Servieren. Es gibt jedoch viele Faktoren, die dies umkehren können und dazu führen, dass das SAN eine viel schnellere Option ist. Einige dieser Faktoren sind:

  • Benötigt Ihre Arbeitslast eine schnelle Suchzeit oder einen schnellen Durchsatz oder beides?
  • Wie viele Spindles auf der SAN-LUN gegenüber der lokalen Festplatte?
  • Welche Busgeschwindigkeit zwischen der SAN-LUN und dem Server im Vergleich zur lokalen Festplattenschnittstelle?
  • Wie viel Lese- / Schreib-Cache ist auf der SAN LUN im Vergleich zur lokalen Festplatte verfügbar?
  • Wie schnell laufen die Festplatten auf der SAN-LUN gegen die lokale Festplatte?
  • Welche anderen IO-Aktivitäten finden auf der SAN-LUN statt auf der lokalen Festplatte statt?
  • Welche RAID-Ebene sind die Arrays im SAN und im lokalen Speicher?

All dies wirkt sich auf Ihre Leistung auf SAN- und lokalen Festplatten aus.


9
2017-09-09 00:51





Es kommt darauf an, wie viele Spindeln verfügbar sind. Je höher die Anzahl der Spindeln ist, desto schneller kann auf ein bestimmtes Datenelement zugegriffen werden. Wenn Sie stark IO-intensiv sind, insbesondere wenn Sie eine Datenbank-App sind, können Sie die Leistung lokaler Festplatten mit einer SAN-Lösung, die wesentlich mehr Plattensätze für die Verwaltung von Kerndaten, -indizes und ähnlichem haben kann, recht einfach verbergen.

Mit dem lokalen Plattensubsystem teilen Sie wahrscheinlich auch den Zugriff auf die Schreib- / Leseköpfe mit anderen Operationen, wie z. B. r / w zum Auslagern, lokalem Betriebssystem und Bibliotheksdateizugriff, Anwendungszugriff, usw. Während einzeln schnell, die kollektive Zeit Wenn alle Lese- / Schreibaktionen die Schreib- / Leseköpfe von einem Bereich der Festplatte verschieben, um einen Satz von Aktionen auf einen anderen zu übertragen, um Ihre Anwendungsanforderungen zu erfüllen, kann dies sicherlich die Leistung beeinträchtigen.


1
2017-09-09 13:07