Übersicht über das Caching in Cloud Storage FUSE

Auf dieser Seite finden Sie Details zu den für Cloud Storage FUSE verfügbaren Caching-Optionen und zur Konfiguration der einzelnen Cachetypen.

Cloud Storage FUSE bietet vier Arten von optionalem Caching, um die Leistung des Datenabrufs zu erhöhen:

Hinweise

  • Wenn Sie Datei-Caching, Statistik-Caching, Typ-Caching oder Listen-Caching aktivieren, kann dies die Leistung erhöhen, aber die Konsistenz verringern. Das passiert in der Regel, wenn Sie mit mehreren Clients mit einer hohen Änderungsrate auf denselben Bucket zugreifen. Um die Auswirkungen auf die Konsistenz zu verringern, empfehlen wir, Buckets schreibgeschützt zu mounten. Weitere Informationen zum Caching-Verhalten finden Sie in der Semantik-Dokumentation zu Cloud Storage FUSE auf GitHub.

  • Wenn ein Datei-Cache-Eintrag noch nicht anhand seiner TTL abgelaufen ist und sich die Datei im Cache befindet, werden Lesevorgänge für diese Datei vom lokalen Client-Cache bereitgestellt, ohne dass eine Anfrage an Cloud Storage gesendet wird.

  • Wenn ein Datei-Cache-Eintrag basierend auf seiner TTL abgelaufen ist, wird zuerst ein GET-Metadatenaufruf an Cloud Storage ausgeführt. Wenn sich die Datei nicht im Cache befindet, wird die Datei aus Cloud Storage abgerufen. Beide Vorgänge unterliegen Netzwerklatenzen. Wenn der Metadateneintrag ungültig wurde, sich die Datei jedoch im Cache befindet und sich die Objektgenerierung nicht geändert hat, wird die Datei erst dann vom Cache bereitgestellt, wenn der Metadaten-Aufruf GET aufgerufen wurde, um zu prüfen, ob die Daten gültig sind.

  • Wenn ein Cloud Storage FUSE-Client eine im Cache gespeicherte Datei oder ihre Metadaten ändert, wird die Datei sofort ungültig und die Konsistenz wird beim folgenden Lesen durch denselben Client gewährleistet. Wenn jedoch verschiedene Clients auf dieselbe Datei oder ihre Metadaten zugreifen und ihre Einträge im Cache gespeichert sind, wird die im Cache gespeicherte Version der Datei oder der Metadaten gelesen und nicht die aktualisierte Version, bis die Datei durch diese bestimmte TTL-Einstellung des jeweiligen Clients entwertet wird.

  • Achten Sie darauf, dass Ihr gesamtes Dataset in den Cache passt, um einen Cache-Überlauf zu vermeiden. Berücksichtigen Sie auch die maximale Kapazität und Leistung, die Ihre Cachemedien bieten können. Wenn Sie die maximale Leistung oder das Kapazitätslimit des bereitgestellten Caches oder beides erreichen, ist es sinnvoll, direkt aus Cloud Storage zu lesen, da dort viel höhere Limits als bei Cloud Storage FUSE gelten.

Lesepfad für im Cache gespeicherte Daten

Der Cloud Storage FUSE-Cache beschleunigt wiederholte Lesevorgänge, nachdem sie in den Cache aufgenommen wurden. Sowohl erstmalige Lesevorgänge als auch Cache-Fehler werden direkt an Cloud Storage übertragen und unterliegen den normalen Cloud Storage-Netzwerklatenzen. Informationen zur Verbesserung der Leseleistung beim ersten Mal finden Sie unter Metadaten-Cache vorab füllen.

Datei-Caching – Übersicht

Der Cloud Storage FUSE-Datei-Cache ist ein clientbasierter Lese-Cache, der wiederholte Dateilesevorgänge aus dem Cache-Speicher bereitstellt, der von Ihrem lokalen Dateisystem unterstützt wird. Weitere Informationen zum Datei-Caching finden Sie auf der Seite Datei-Caching.

Parallele Downloads

Wenn Sie das Datei-Caching aktivieren, werden parallele Downloads in Cloud Storage FUSE-Versionen 2.12 und höher automatisch aktiviert. Parallele Downloads beschleunigen die Leseleistung für große Dateien über 1 GB, einschließlich der ersten Lesevorgänge. Dabei wird eine Datei mithilfe mehrerer Worker parallel heruntergeladen und das Dateicache-Verzeichnis als Prefetch-Puffer verwendet. Parallele Downloads können verwendet werden, um die Leistung für KI- und ML-Arbeitslasten (maschinelles Lernen) zu optimieren, z. B. beim Modell-Serving, beim Wiederherstellen von Checkpoints und beim Trainieren mit großen Objekten. Weitere Informationen zu parallelen Downloads finden Sie unter Parallele Downloads.

Datei-Caching konfigurieren

Informationen zum Konfigurieren des Datei-Cachings finden Sie unter Datei-Caching von Cloud Storage FUSE verwenden.

Caching von Statistiken

Der Statistik-Cache von Cloud Storage FUSE ist ein Cache für Objektmetadaten, der die Leistung für Vorgänge verbessert, die für Dateiattribute spezifisch sind, z. B. Größe, Änderungszeit oder Berechtigungen. Die Verwendung des Statistik-Cache verbessert die Latenz, da die im Cache gespeicherten Daten zum Ausführen von Vorgängen verwendet werden, anstatt eine Statistik-Objektanfrage an Cloud Storage zu senden. Weitere Informationen zum Statistik-Caching finden Sie in der Semantik-Dokumentation auf GitHub.

Statistik-Cache konfigurieren

Der Statistik-Cache ist standardmäßig aktiviert und kann mit einer Cloud Storage FUSE-Konfigurationsdatei konfiguriert werden. Die maximale Größe des Cache wird mit einer der folgenden Methoden gesteuert:

Weitere Informationen zu Standard- und empfohlenen Werten für die Konfiguration des Stat-Cache finden Sie auf den Seiten Cloud Storage FUSE-Befehlszeilenoptionen und Konfigurationsdatei.

Negatives Caching für Statistiken konfigurieren

Cloud Storage FUSE bietet auch eine Funktion für negatives Statistik-Caching, mit der Sie eine TTL für Statistik-Cache-Einträge für nicht vorhandene Dateien oder negative Ergebnisse festlegen können. Die TTL des Caches für negative Statistiken wird mit einer der folgenden Methoden gesteuert:

Typ-Caching – Übersicht

Der Cache des Cloud Storage FUSE-Typs ist ein Metadaten-Cache, der die Leistung für Metadatenvorgänge beschleunigt, die für das Vorhandensein von Dateien oder Verzeichnissen spezifisch sind. Die Verwendung des Typcache verbessert die Latenz, da die Anzahl der Anfragen an Cloud Storage reduziert wird, um zu prüfen, ob eine Datei oder ein Verzeichnis vorhanden ist, indem diese Informationen lokal gespeichert werden. Weitere Informationen zum Typ-Caching finden Sie in der Semantik-Dokumentation auf GitHub.

Typ-Caching konfigurieren

Der Typ-Cache ist standardmäßig aktiviert und kann mit einer Cloud Storage FUSE-Konfigurationsdatei oder der Cloud Storage FUSE-Befehlszeile konfiguriert werden. Die maximale Größe des Cache wird mit einer der folgenden Methoden gesteuert:

Weitere Informationen zum Typ-Caching und zu empfohlenen Werten finden Sie auf den Seiten CLI-Optionen oder Konfigurationsdatei.

Die TTL des Cache wird mit einer der folgenden Methoden gesteuert:

Caching-Übersicht auflisten

Der Listen-Cache von Cloud Storage FUSE ist ein Cache für Verzeichnis- und Dateilisten oder ls, Antworten zur Verbesserung der Geschwindigkeit von Listenvorgängen. Das Caching von Listen ist besonders nützlich für Arbeitslasten, die im Rahmen der Ausführung vollständige Verzeichniseinträge wiederholen, z. B. KI/ML-Trainingsläufe.

Der Listen-Cache wird im Arbeitsspeicher des Seitencache gespeichert. Dieser wird vom Kernel basierend auf der Arbeitsspeicherverfügbarkeit gesteuert. Im Gegensatz dazu werden Statistik- und Typ-Caches im Arbeitsspeicher Ihres Computers gespeichert und von Cloud Storage FUSE gesteuert.

Listen-Caching konfigurieren

Sie können das Listen-Caching mit einer der folgenden Methoden aktivieren:

Informationen zum Aktivieren und Konfigurieren des Listen-Cachings finden Sie auf den Seiten Konfigurationsdatei für Cloud Storage FUSE oder Cloud Storage FUSE-Befehlszeilenoptionen.

Datei-, Statistik- und Typ-Cache-Entwertung konfigurieren

In den folgenden Abschnitten wird beschrieben, wie Sie die Cache-Entwertung für alle Cache-Typen konfigurieren.

Verwenden Sie für Datei-, Statistik- und Typ-Caches eine der folgenden Methoden, um die TTL in Sekunden anzugeben, wie lange im Cache gespeicherte Metadaten ab dem Zeitpunkt verwendet werden, zu dem sie aus Cloud Storage abgerufen werden, bis sie ablaufen und aktualisiert werden müssen:

Wenn Sie einen Wert angeben, der größer als 0 ist, bleiben die Metadaten für den Dateicache nur für den von Ihnen angegebenen Zeitraum gültig. Für das Datei-Caching empfehlen wir, den Wert basierend auf der erwarteten Zeit zwischen wiederholten Lesevorgängen zu erhöhen, während Sie Konsistenzanforderungen ausgleichen. Abhängig von der Wichtigkeit und Häufigkeit der Datenänderungen empfehlen wir, den Wert so hoch wie möglich für Ihre Arbeitslast festzulegen. Wenn ein Metadateneintrag ungültig wird, werden nachfolgende Lesevorgänge von Cloud Storage abgefragt.

Neben Werten, die eine bestimmte TTL in Sekunden darstellen, bevor Ihre im Cache gespeicherten Metadaten ablaufen und aktualisiert werden müssen, können Sie die folgenden Werte verwenden, um anzugeben, wie Ihre Datei gelesen wird:

  • 0: sorgt dafür, dass die Datei mit den aktuellsten Daten gelesen wird. Dazu wird ein GET-Metadatenaufruf an Cloud Storage gesendet, der die bereitgestellte Datei prüft, um sicherzustellen, dass der Cache konsistent ist. Wenn die Datei im Cache aktuell ist, wird sie direkt aus dem Cache bereitgestellt. Wenn Sie einen anderen Wert als 0 angeben, kann dies zu einer geringeren Leistung führen, da immer ein Aufruf an Cloud Storage erfolgen muss, damit zuerst die Metadaten geprüft werden. Befindet sich die Datei im Cache und hat sich nicht geändert, wird die Datei nach dem Metadaten-Aufruf GET mit Konsistenz aus dem Cache bereitgestellt.

  • -1: sorgt dafür, dass die Datei immer aus dem Cache gelesen wird, sofern sie verfügbar ist, ohne auf Konsistenz zu prüfen. Dateien, die ohne Konsistenzprüfung bereitgestellt werden, können inkonsistente Daten liefern. Daher sollten sie nur vorübergehend für Arbeitslasten verwendet werden, die in Jobs mit nicht ändernden Daten ausgeführt werden. Die Verwendung eines Werts von -1 ist beispielsweise für das Training mit maschinellem Lernen nützlich, bei dem dieselben Daten über mehrere Epochen ohne Änderungen gelesen werden.

Cache-Entwertung auflisten

Die Listen-Cache-Invalidierung wird festgelegt, indem Sie mit einer der folgenden Methoden einen Wert angeben, der größer als 0 ist:

  • --kernel-list-cache-ttl-secs-Befehlszeilenoption
  • Feld file-system:kernel-list-cache-ttl-secs

Die Antwort der Verzeichnisliste wird auf der Cache-Seite des Kernels gespeichert und bleibt für die von Ihnen angegebene Zeit gültig. Wenn Sie den Wert -1 angeben, deaktiviert Cloud Storage FUSE den Ablauf des Listen-Cache und gibt die Listenantwort aus dem Cache zurück, wenn sie verfügbar ist. Wenn Sie den Wert 0 angeben, wird der Listen-Cache deaktiviert.

Nächste Schritte