Auf dieser Seite finden Sie eine Anleitung zur Optimierung der Leistung in Buckets mit aktiviertem hierarchischen Namespace.
Objekte auflisten
Im Folgenden finden Sie die Leistungsaspekte für das Auflisten von Objekten:
- In Buckets mit aktiviertem hierarchischen Namespace ist das Auflisten aller Objekte für den gesamten Bucket oder mit einem Präfix ressourcenintensiv, da bei dem Vorgang jeder Ordner und Unterordner durchlaufen werden muss, ähnlich wie beim Befehl
ls -r
in einem Dateisystem. Je mehr Ordner in Ihrem Bucket vorhanden sind, desto langsamer erfolgt die Objektauflistung. Eine große Anzahl leerer Ordner kann sich auch negativ auf die Leistung der Objektliste auswirken. Um die Leistung nicht zu beeinträchtigen, empfehlen wir, die Anzahl der Objekte in jedem Ordner zu maximieren und leere Ordner regelmäßig zu löschen. - Das Auflisten oder Abrufen von Objekten und Unterordnern in einem bestimmten Ordner mit einem Trennzeichen und einem bestimmten Präfix ist in Buckets mit aktiviertem hierarchischem Namespace effizienter, da die Objekte in einer Ordnerstruktur organisiert sind. Wenn Sie ein Trennzeichen und ein bestimmtes Präfix verwenden, können Sie die Leistung von Einträgen optimieren, indem Sie den Parameter
includeFoldersAsPrefixes
festlegen. Andernfalls führt Cloud Storage zusätzliche Prüfungen durch, um leere Ordner auszuschließen, was den Vorgang verlangsamen kann. Weitere Informationen zur Verwendung vonincludeFoldersAsPrefixes
beim Auflisten von Objekten finden Sie unter Objekte auflisten.
Ordnerverwaltung
Für eine effiziente Ordnerverwaltung empfehlen wir Folgendes:
- Ordnerstruktur vorab erstellen:Anstatt sich auf die automatische Ordnererstellung beim Hochladen, Überschreiben und Zusammensetzen von Objekten zu verlassen, verwenden Sie den Vorgang zum Erstellen von Ordnern, um die gewünschte Ordnerstruktur vorab zu erstellen. Wenn Sie die Ordnerstruktur vorab erstellen, verbessern Sie die Konsistenz und Vorhersagbarkeit der Leistung.
- Verhältnis von Objekten zu Ordnern maximieren:Achten Sie auf ein hohes Verhältnis von Objekten zu Ordnern, da dies den Aufwand für das Erstellen und Verwalten von Ordnern verringert.
- Anfragen zum Erstellen und Löschen von Ordnern begrenzen:Das Erstellen oder Löschen von Ordnern ist aufgrund der hierarchischen Struktur ressourcenintensiver als das Arbeiten mit einzelnen Objekten. Um eine reibungslose Leistung zu gewährleisten, beschränkt Cloud Storage diese Vorgänge auf 1.000 Anfragen pro Sekunde für jeden Bucket. Anfragen, die dieses Limit überschreiten, werden nicht explizit eingeschränkt. Die Ressourcenverfügbarkeit bestimmt jedoch, ob sie erfolgreich verarbeitet werden können.
- Leere Ordner regelmäßig löschen:Leere Ordner können sich ansammeln, insbesondere wenn Sie die Verwaltung des Objektlebenszyklus verwenden oder Objekte löschen, ohne die übergeordneten Ordner explizit zu löschen. Die angehäuften Ordner können die Leistung von Vorgängen zum Auflisten von Objekten und anderen ordnerbezogenen Vorgängen beeinträchtigen. Im Folgenden finden Sie einige Methoden, mit denen Sie leere Ordner löschen können:
- Wenn Sie Cloud Storage FUSE oder den Cloud Storage-Connector verwenden, um mit einem Bucket mit hierarchischem Namespace zu interagieren, wird beim Löschen eines Verzeichnisses der entsprechende Ordner in Ihrem Bucket gelöscht.
- Sie können Ordner automatisch löschen, indem Sie die Trusted Cloud Console oder die Google Cloud CLI verwenden.
- Sie können das Skript
delete_empty_folders.py
verwenden, um leere Ordner regelmäßig parallel zu löschen. Das Skript bietet die Möglichkeit, einen bestimmten Ordnerpfad anzugeben. So können Ordnerlöschungen nur für einen Teil der Verzeichnisstruktur des Buckets ausgeführt werden. Außerdem werden alle leeren Ordner (implizit oder explizit erstellt), einschließlich verwalteter Ordner und der zugehörigen IAM-Richtlinien, gelöscht. Weitere Informationen zur Verwendung des Skripts finden Sie in der README-Datei auf GitHub.