Questa pagina fornisce indicazioni su come ottimizzare il rendimento nei bucket con lo spazio dei nomi gerarchico abilitato.
Elenco di oggetti
Di seguito sono riportate le considerazioni sul rendimento per gli oggetti elenco:
- Nei bucket con spazio dei nomi gerarchico abilitato, elencare tutti gli oggetti per l'intero bucket o con un prefisso richiede molte risorse, poiché l'operazione deve attraversare ogni cartella e sottocartella, in modo simile al comando
ls -r
in un file system. Di conseguenza, se nel bucket sono presenti più cartelle, l'elenco degli oggetti viene visualizzato più lentamente. Un numero elevato di cartelle vuote può influire negativamente anche sulle prestazioni dell'elenco degli oggetti. Per evitare di influire negativamente sul rendimento, ti consigliamo di massimizzare il numero di oggetti in ogni cartella ed eliminare regolarmente le cartelle vuote. - Elencare o recuperare oggetti e sottocartelle all'interno di una cartella specifica utilizzando un delimitatore e un prefisso specifico è più efficiente nei bucket con lo spazio dei nomi gerarchico abilitato, poiché gli oggetti sono organizzati all'interno di una struttura di cartelle. Per ottimizzare il rendimento della scheda quando utilizzi un delimitatore e un prefisso specifico, imposta il parametro
includeFoldersAsPrefixes
. In caso contrario, Cloud Storage esegue controlli aggiuntivi per escludere le cartelle vuote, il che può rallentare l'operazione. Per saperne di più sull'utilizzo diincludeFoldersAsPrefixes
durante l'elenco degli oggetti, consulta Elenco degli oggetti.
Gestione delle cartelle
Per una gestione efficiente delle cartelle, ti consigliamo quanto segue:
- Struttura delle cartelle pre-creata:anziché fare affidamento sulla creazione automatica delle cartelle durante le operazioni di caricamento, riscrittura e composizione degli oggetti, utilizza l'operazione di creazione delle cartelle per ottenere in anticipo la struttura delle cartelle che ti interessa. La pre-creazione della struttura delle cartelle migliora la coerenza e la prevedibilità delle prestazioni.
- Massimizza il rapporto tra oggetti e cartelle:punta a un rapporto elevato tra oggetti e cartelle, in quanto riduce il sovraccarico associato alla creazione e alla gestione delle cartelle.
- Limita le richieste di creazione ed eliminazione di cartelle:la creazione o l'eliminazione di cartelle richiede più risorse rispetto all'utilizzo di singoli oggetti a causa della loro natura gerarchica. Per garantire prestazioni ottimali, Cloud Storage limita queste operazioni a 1000 richieste al secondo per ogni bucket. Le richieste che superano questo limite non sono esplicitamente limitate, ma la disponibilità delle risorse determina se possono essere elaborate correttamente.
Elimina regolarmente le cartelle vuote:le cartelle vuote possono accumularsi, soprattutto quando utilizzi la gestione del ciclo di vita degli oggetti o elimini gli oggetti senza eliminare esplicitamente le cartelle principali. Le cartelle accumulate possono influire sul rendimento dell'operazione di elencazione degli oggetti e di altre operazioni correlate alle cartelle. Di seguito sono riportati alcuni metodi che puoi utilizzare per eliminare le cartelle vuote:
- Quando utilizzi Cloud Storage FUSE o il connettore Cloud Storage per interagire con un bucket abilitato con lo spazio dei nomi gerarchico, l'eliminazione di una directory elimina la cartella corrispondente nel bucket.
- Puoi utilizzare un'eliminazione ricorsiva per eliminare automaticamente le cartelle quando utilizzi la console Google Cloud o Google Cloud CLI.
Puoi utilizzare uno script o un processo automatizzato per eliminare periodicamente le cartelle vuote. Il seguente script fornisce un approccio di base per eliminare le cartelle vuote. Lo script elimina le cartelle in sequenza, il che può essere lento per i bucket di grandi dimensioni, pertanto potresti prendere in considerazione l'ottimizzazione dello script per gli ambienti di produzione. Inoltre, lo script elimina tutte le cartelle vuote (create in modo implicito o esplicito), incluse le cartelle gestite e i relativi criteri IAM. Se devi conservare cartelle specifiche e cartelle gestite, modifica lo script in base alle risorse che vuoi conservare.
# List all the folders under <bucket>/<prefix> and export results into # folders.txt gcloud storage folders list gs://<bucket>/<prefix> | grep storage_url | sed 's/storage_url: //' > folders.txt # Reverse the folder list and export results into folders-reverse.txt sed '1!G;h;$!d' folders.txt > folders-reverse.txt # Try deleting each folder in the reverse order (to guarantee child # folders are deleted before parent folders). This will fail for # non-empty folders, so only empty folders will be deleted xargs -I{} gcloud storage folders delete "{}" < folders-reverse.txt