Azure Native Qumulo jetzt in der EU, im Vereinigten Königreich und in Kanada verfügbar – Erfahren Sie mehr

Untersuchen des Read Prefetch-Systems von Qumulo und wie es so effektiv ist

Geschrieben von:
Wie erhalten Qumulo-Kunden eine niedrige NFS-Leselatenz und eine niedrige SMB-Leselatenz? Ein Großteil dieser schnellen Leistung ist auf unser innovatives Read-Prefetch-System zurückzuführen.

Wir haben vor kurzem das neue Geschäftsjahr hier bei Qumulo gestartet. Während des Firmenstarts wurde dieses Diagramm präsentiert, das die durchschnittliche Leselatenz für Qumulo-Kunden auf der ganzen Welt für das letzte Jahr zeigt.

 

Wie Sie sehen können, sind die Leselatenzen für NFS- und SMB-Protokolle erheblich niedriger. Als Kunden ihre Qumulo-Software im Jahr 2018 aktualisierten, sahen sie, wie ihre Leseleistung immer schneller wurde.

Die Geschwindigkeit des Speichers für die Kosten der Festplatte

Während das kostengünstige Hybrid-Cloud-Dateispeichersystem von Qumulo den Großteil der Daten auf relativ langsamen Festplatten speichert, können Sie unten sehen, dass der Großteil der Daten mit der Geschwindigkeit von SSD und Arbeitsspeicher an Kunden geliefert wird. Die Mehrheit der Lesevorgänge für die Kunden von Qumulo hat eine Latenzzeit von unter einer Millisekunde.

 

Wie erreichen unsere Kunden eine niedrige NFS-Leselatenz und eine niedrige SMB-Leselatenz? Ein Großteil dieser schnellen Leistung ist das Ergebnis unseres innovativen Read Prefetch-Systems. Aber bevor wir zu unserer Software kommen, werfen wir einen Blick auf die Hardware, um zu verstehen, was wir tun werden.

Merkmale der Speichermedien-Hardware

Ein typischer Qumulo-Cluster – sagen wir 4 Knoten von QC208 – hätte 104 Festplatten (HDDs), 56 Solid State Drives (SSDs) und 600 Gigabyte Arbeitsspeicher (RAM). Unsere Kunden haben viele Daten und sie brauchen diese Daten sicher auf Festplatte geschützt. Sie möchten auch einen schnellen Zugriff auf diese Daten haben.

 

Unten sehen Sie ein Diagramm, das die Zeit zeigt, die zum Lesen von Daten von den verschiedenen Speichermedien benötigt wird, die sich in einem typischen Qumulo-Cluster befinden.

 

Der schnellste Weg, um Daten aus dem Qumulo-Speicher zu lesen, besteht darin, Daten aus dem RAM zu lesen. Aber wir können zu einem bestimmten Zeitpunkt nur einen winzigen Bruchteil der Daten des gesamten Clusters im Speicher behalten. Wie können wir schlau darüber werden, was wir in den RAM legen und wann wir es dort ablegen? Wie können wir vorhersehen, was ein Benutzer lesen wird, und es dorthin bringen, bevor er überhaupt danach fragt?

Ein einfaches Lesemuster ohne Prefetch

Um die obigen Fragen zu beantworten, sehen wir uns ein einfaches Lesemuster von einem einzelnen Client für eine einzelne Datei ohne Optimierung an.

 

Jeder Lesevorgang ist relativ langsam. Dies veranschaulicht ein Szenario, in dem jeder Lesevorgang von der Festplatte kommt und viele Millisekunden dauert. In diesem Szenario können Sie eine 50-MB-Datei in 1 Sekunde oder 50 MB/s lesen.

Prefetching für ein serielles, langsames Lesemuster

Dieses nächste Diagramm zeigt, was passieren würde, wenn Sie mit demselben Muster lesen, aber die Software von Qumulo erkennt, was Sie als nächstes lesen werden, und legt es in den Arbeitsspeicher ab, sodass Sie es sehr schnell zurückbekommen, wenn Sie danach fragen. Jetzt lesen Sie die Datei in 0.5 Sekunden und Sie erhalten 100 MB/s pro Sekunde. Das ist anständig.

 

Client-optimierte Lesemuster vorab abrufen

Windows-, Mac- und Linux-Clients neigen jedoch nicht dazu, Dateien seriell zu lesen. Sie neigen dazu, Dateien in großen, parallelen Stapeln zu lesen. Das nächste Diagramm zeigt dieses Szenario. Drei Lesevorgänge werden fast gleichzeitig gestartet. Der dritte Lesevorgang wurde erfolgreich vorab abgerufen, obwohl es noch einige Zeit gedauert hat. Aber die nächsten sieben Lesevorgänge befinden sich jetzt alle im Speicher und werden ungefähr in der richtigen Reihenfolge gelesen, und die Lesevorgänge dauern alle weniger als eine Millisekunde. Jetzt können Sie diese 50 MB große Datei in einer Zehntelsekunde lesen. Das sind 500 MB/s. Es wird schnell.

 

Prefetching und Dateivorhersage

Dieses nächste Diagramm zeigt, was passiert, wenn Qumulo die nächste gelesene Datei erwartet. In diesem Fall können wir alle Daten für Datei 2 von unseren 104 Laufwerken in den RAM ziehen und Sie können diese zweite Datei in 0.03 Millisekunden lesen. Das bedeutet, dass Sie die Datei (und alle zukünftigen Dateien) jetzt mit einer Geschwindigkeit von 1.6 GB/s lesen. Das geht blitzschnell!

 

Die Dinge sind nicht immer perfekt, wie im obigen Beispiel. Manchmal ist ein Lesemuster völlig zufällig. In diesem Fall wird nichts vorab abgerufen.

 

Unser Prefetcher schaltet sich ab und verschwendet keinen wertvollen Arbeitsspeicher. Aber keine Sorge, Sie können trotzdem von unserer „Read Promotion to SSD Cache“ profitieren, aber das Thema ist für einen anderen Tag.

So erzielen Sie eine hervorragende Leseleistung von Qumulo

  • Lesen Sie beim Einlesen in eine Datei diese der Reihe nach, beginnend am Anfang
  • Innerhalb eines Verzeichnisses:
    • Lesen Sie die Dateien in ihrer numerischen Reihenfolge (Datei1.txt, Datei2.txt usw.)
    • Oder lesen Sie Dateien in der Reihenfolge, in der sie über "ls -U" zurückgegeben werden.
  • Lesen Sie in großen Teilen, wenn möglich
  • Lesen Sie bei der Arbeit mit kleinen Dateien (insbesondere Dateien mit weniger als einigen Megabyte) die gesamte Datei

Kontaktieren Sie uns hier, wenn Sie möchten ein Meeting einrichten oder eine Demo anfordern. Und Abonnieren Sie unseren Blog für weitere hilfreiche Best Practices und Ressourcen!

Verwandte Artikel

Nach oben scrollen