Ottimizzare il rendimento nei bucket con uno spazio dei nomi gerarchico abilitato

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 con spazio dei nomi gerarchico abilitato, l'elenco di tutti gli oggetti per l'intero bucket o con un prefisso richiede molte risorse perché l'operazione deve attraversare ogni cartella e sottocartella, in modo simile al comando ls -r in un file system. Di conseguenza, se il bucket contiene più cartelle, la visualizzazione degli oggetti avviene più lentamente. Anche un numero elevato di cartelle vuote può influire negativamente sulle prestazioni delle schede 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 saperne di più sull'utilizzo di includeFoldersAsPrefixes quando si elencano gli oggetti, consulta Elenco di oggetti.

Gestione delle cartelle

Per una gestione efficiente delle cartelle, ti 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 pre-creazione della struttura delle cartelle migliora la coerenza e la prevedibilità del rendimento.
  • Massimizza il rapporto oggetti per cartella:punta a un rapporto oggetti/cartella elevato, 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 al lavoro con singoli oggetti a causa della sua natura gerarchica. Per garantire un funzionamento regolare, 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 dei 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 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 di cartelle vuote. Lo script elimina le cartelle in sequenza, il che può essere lento per i bucket di grandi dimensioni. Pertanto, ti consigliamo di ottimizzare lo 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