Questa pagina fornisce indicazioni su come ottimizzare il rendimento nei bucket con uno spazio dei nomi gerarchico abilitato.
Elenco di oggetti
Di seguito sono riportati i fattori di rendimento per gli oggetti della scheda:
- Nei bucket in cui è abilitato lo spazio dei nomi gerarchico, elencare tutti gli oggetti per l'intero bucket o con un prefisso richiede molte risorse, poiché l'operazione deve attraversare ogni cartella e sottocartella, come per il comando
ls -r
in un file system. Di conseguenza, se il bucket contiene più cartelle, più lento sarà l'elenco degli oggetti. Anche un numero elevato di cartelle vuote può influire negativamente sulle prestazioni dell'elenco degli oggetti. Per evitare ripercussioni negative sul rendimento, ti consigliamo di massimizzare il numero di oggetti in ogni cartella ed eliminare regolarmente le cartelle vuote. - L'elenco o il recupero di oggetti e sottocartelle all'interno di una cartella specifica utilizzando un delimitatore e un prefisso specifico è più efficiente nei bucket con 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 ulteriori informazioni sull'utilizzo diincludeFoldersAsPrefixes
quando si elencano gli oggetti, consulta la sezione Elenco di oggetti.
Gestione delle cartelle
Per una gestione efficiente delle cartelle, consigliamo quanto segue:
- Precreazione della struttura delle cartelle: invece di fare affidamento sulla creazione automatica delle cartelle durante le operazioni di caricamento, riscrittura e composizione degli oggetti, utilizza l'operazione di creazione cartella per ottenere in anticipo la struttura delle cartelle desiderata. La pre-creazione della struttura delle cartelle migliora la coerenza e la prevedibilità del rendimento.
- Massimizza il rapporto oggetti per cartella: cerca di utilizzare un rapporto oggetti/cartella elevato, in quanto riduce l'overhead 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 al lavoro con singoli oggetti a causa della sua natura gerarchica. Per garantire prestazioni senza problemi, Cloud Storage limita queste operazioni a 1000 richieste al secondo per ogni bucket. Le richieste che superano questo limite non sono limitate esplicitamente, ma la disponibilità delle risorse determina se possono essere elaborate correttamente.
Elimina regolarmente le cartelle vuote: le cartelle vuote possono accumularsi, soprattutto se utilizzi la gestione del ciclo di vita degli oggetti o se elimini gli oggetti senza eliminare esplicitamente le cartelle principali. Le cartelle accumulate possono influire sul rendimento dell'operazione di elenco di oggetti e su altre operazioni relative alle cartelle. Di seguito sono riportati alcuni metodi che puoi utilizzare per eliminare cartelle vuote:
- Quando utilizzi Cloud Storage FUSE o il connettore Cloud Storage per interagire con un bucket abilitato con spazio dei nomi gerarchico, l'eliminazione di una directory comporta l'eliminazione della 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 una procedura automatica per eliminare periodicamente le cartelle vuote. Lo script seguente fornisce un approccio di base per l'eliminazione delle cartelle vuote. Lo script elimina le cartelle in sequenza, il che può essere lento per i bucket di grandi dimensioni, perciò potresti prendere in considerazione l'ottimizzazione dello script per gli ambienti di produzione. Inoltre, lo script elimina tutte le cartelle vuote (create implicitamente o esplicitamente), incluse le cartelle gestite e i relativi criteri IAM associati. 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