Auf dieser Seite finden Sie eine Anleitung zur Optimierung der Leistung in Buckets mit aktiviertem hierarchischen Namespace.
Objekte auflisten
Im Folgenden werden die Leistungsaspekte für das Auflisten von Objekten beschrieben:
- In Buckets mit aktiviertem hierarchischen Namespace verbraucht das Auflisten aller Objekte für den gesamten Bucket oder mit einem Präfix viele Ressourcen, da bei dem Vorgang jeder Ordner und Unterordner durchlaufen werden muss, ähnlich wie beim Befehl
ls -rin 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 Auflistung von Objekten auswirken. Für eine bessere Leistung wird empfohlen, 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
includeFoldersAsPrefixesfestlegen. Andernfalls führt Cloud Storage zusätzliche Prüfungen durch, um leere Ordner auszuschließen, was den Vorgang verlangsamen kann. Weitere Informationen zur Verwendung vonincludeFoldersAsPrefixesbeim Auflisten von Objekten finden Sie unter Objekte auflisten.
Ordnerverwaltung
Für eine effiziente Ordnerverwaltung wird empfohlen:
- Ordnerstruktur vorab erstellen: Anstatt sich auf die automatische Ordnererstellung beim Hochladen, Umschreiben und Erstellen von Objekten zu verlassen, erstellen Sie die Ordnerstruktur vorab beim Erstellen der Ordner. 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 hohe Leistung zu ermöglichen, 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 abgelehnt, aber ob sie erfolgreich verarbeitet werden können, hängt von der Ressourcenverfügbarkeit ab.
- 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. Diese angesammelten Ordner können die Leistung von Vorgängen zum Auflisten von Objekten und andere ordnerbezogene Vorgänge beeinträchtigen. Im Folgenden finden Sie einige Methoden zum Löschen leerer Ordner:
- 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, wenn Sie die Google Cloud Console oder die Google Cloud CLI verwenden.
- Sie können das Skript
delete_empty_folders.pyverwenden, um leere Ordner regelmäßig parallel zu löschen. Mit dem Skript kann ein bestimmter Ordnerpfadpräfix angegeben werden. So werden Ordnerlöschungen nur für einen Teil der Verzeichnisstruktur des Buckets ausgeführt. Außerdem werden alle (implizit oder explizit erstellten) leeren Ordner, einschließlich verwalteter Ordner und ihrer zugehörigen IAM-Richtlinien, gelöscht. Weitere Informationen zur Verwendung des Skripts finden Sie in der README-Datei auf GitHub.