Ottimizza le prestazioni nei bucket in cui è abilitato uno spazio dei nomi gerarchico

Questa pagina fornisce indicazioni su come ottimizzare il rendimento nei bucket con uno spazio dei nomi gerarchico abilitato.

Elenco di oggetti

Di seguito sono riportate le considerazioni sulle prestazioni per l'elenco degli oggetti:

  • 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 di influire negativamente sulle prestazioni, ti consigliamo di massimizzare il numero di oggetti in ciascuna 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 saperne di più sull'utilizzo di includeFoldersAsPrefixes per elencare gli oggetti, consulta Elenco di oggetti.

Gestione delle cartelle

Per una gestione efficiente delle cartelle, consigliamo quanto segue:

  • Precrea la struttura delle cartelle: anziché fare affidamento sulla creazione automatica delle cartelle durante le operazioni di caricamento, riscrittura e composizione degli oggetti, utilizza l'operazione Crea cartella per ottenere in anticipo la struttura delle cartelle che intendi utilizzare. La creazione preliminare della struttura di cartelle migliora la prevedibilità e la coerenza delle prestazioni.
  • 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 in modo esplicito, 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 sulle prestazioni delle operazioni di elenco degli oggetti e di altre operazioni correlate 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 lo 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 un processo automatizzato 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
      

Passaggi successivi