Questa pagina fornisce indicazioni su come migliorare il rendimento di Cloud Storage FUSE.
Migliorare le prestazioni di lettura e scrittura
Per migliorare le prestazioni di lettura e scrittura, ti consigliamo quanto segue:
Abilita la memorizzazione nella cache: Cloud Storage FUSE offre quattro tipi di cache lato client facoltativi che memorizzano localmente tipi specifici di dati e metadati per contribuire a migliorare le prestazioni:
Memorizzazione nella cache dei file: vengono memorizzate copie dei file a cui viene eseguito di frequente l'accesso.
Memorizzazione nella cache delle statistiche: memorizza i metadati dei file.
Memorizzazione nella cache del tipo: memorizza le informazioni sul tipo di file.
Memorizzazione nella cache dell'elenco: memorizza le schede della directory dei negozi.
La memorizzazione nella cache di Cloud Storage FUSE funziona con qualsiasi directory specificata dall'utente supportata dalla tua scelta di archiviazione. Le prestazioni della cache Cloud Storage FUSE corrispondono allo spazio di archiviazione sottostante utilizzato dalla cache con un overhead minimo.
Accelera le letture attivando i download paralleli: accelera le letture di file di grandi dimensioni superiori a 1 GB attivando i download paralleli. Per ulteriori informazioni, consulta Migliorare le prestazioni di lettura utilizzando i download paralleli.
Esegui carichi di lavoro di lettura sequenziale, se possibile: Cloud Storage FUSE ha un rendimento migliore per i carichi di lavoro di lettura sequenziale rispetto ai carichi di lavoro di lettura casuale. Cloud Storage FUSE utilizza un'euristica per rilevare quando un file viene letto in sequenza, il che consente a Cloud Storage FUSE di emettere meno richieste di lettura più grandi a Cloud Storage utilizzando la stessa connessione TCP.
Modifica le dimensioni dei file in base al tipo di lettura: per ottimizzare le prestazioni di lettura sequenziale, ti consigliamo di caricare e leggere file di dimensioni comprese tra 5 MB e 200 MB. Per ottimizzare le prestazioni di lettura casuale, ti consigliamo di caricare e leggere file di circa 2 MB.
Monta i bucket con lo spazio dei nomi gerarchico abilitato: per aumentare le velocità di lettura e scrittura e garantire l'atomicità per operazioni di query iniziali più elevate al secondo (QPS), consigliamo di montare i bucket con lo spazio dei nomi gerarchico abilitato. Per scoprire di più su come i bucket abilitati per gli spazi di nomi gerarchici possono migliorare le prestazioni di Cloud Storage FUSE, consulta Montare i bucket con lo spazio dei nomi gerarchico abilitato.
Migliorare le prestazioni di lettura la prima volta
Prima di eseguire il tuo carico di lavoro, ti consigliamo di elencare in modo ricorsivo i file nel bucket montato per compilare in anticipo le cache di statistiche e tipi e migliorare le prestazioni alla prima esecuzione in un metodo batch più rapido:
ls -R MOUNT_POINT > /dev/null
Utilizza la memorizzazione nella cache dei file per migliorare il throughput
Cloud Storage FUSE ha una latenza più elevata rispetto a un file system locale. La throughput viene ridotta quando leggi o scrivi file di piccole dimensioni uno alla volta, poiché comporta diverse chiamate API distinte. La lettura o la scrittura di più file di grandi dimensioni alla volta può contribuire ad aumentare la velocità effettiva delle transazioni. Utilizza la funzionalità di cache dei file di Cloud Storage FUSE per migliorare le prestazioni per I/O piccole e casuali. Per scoprire di più sulla memorizzazione intermedia dei file e su come attivare la funzionalità, consulta Utilizzare la memorizzazione intermedia dei file Cloud Storage FUSE.
Monta i bucket con lo spazio dei nomi gerarchico abilitato
Per garantire l'atomicità per operazioni con un numero maggiore di query iniziali al secondo (QPS), come il checkpointing e le ridenominazioni o le modifiche delle directory, consigliamo di montare i bucket con lo spazio dei nomi gerarchico abilitato. Lo spazio dei nomi gerarchico organizza i dati in una struttura di file system gerarchica, rendendo più efficienti le operazioni all'interno del bucket. Le chiamate List object (BucketHandle.Objects
) vengono sostituite con le chiamate get folder, con tempi di risposta più rapidi e meno chiamate list complessive per ogni operazione.
Aumenta le dimensioni della lettura anticipata per migliorare il throughput delle letture di grandi dimensioni
Puoi migliorare il throughput di lettura di grandi dimensioni aumentando la quantità di dati pre-caricati con ogni richiesta di lettura utilizzando il parametro del kernel Linux read_ahead_kb
sulla tua macchina locale. Ti consigliamo di aumentare il parametro del kernel read_ahead_kb
a 1 MB anziché utilizzare il valore predefinito di 128 KB impostato sulla maggior parte delle distribuzioni Linux. Per aumentare correttamente il parametro del kernel sono necessarie le autorizzazioni sudo
o root
.
Per aumentare il parametro del kernel read_ahead_kb
a 1 MB per una directory montata FUSE Cloud Storage specifica, utilizza il seguente comando, dove /path/to/mount/point
è il punto di montaggio FUSE Cloud Storage. Il bucket deve essere montato su Cloud Storage FUSE prima di eseguire il comando, altrimenti il parametro del kernel non aumenta.
export MOUNT_POINT=/path/to/mount/point
echo 1024 | sudo tee /sys/class/bdi/0:$(stat -c "%d" $MOUNT_POINT)/read_ahead_kb
Ottieni la massima velocità effettiva
Per ottenere la massima velocità in uscita, utilizza una macchina con risorse CPU sufficienti per aumentare la velocità in uscita e saturare la scheda di interfaccia di rete (NIC). Risorse CPU insufficienti possono causare il throttling di Cloud Storage FUSE.
Se utilizzi Google Kubernetes Engine, aumenta l'allocazione della CPU al contenitore sidecar FUSE di Cloud Storage se i tuoi carichi di lavoro richiedono un throughput più elevato. Puoi aumentare le risorse utilizzate dal contenitore sidecar o allocare risorse illimitate.
Valutare le esigenze di IOPS in query al secondo
Filestore è un'opzione migliore di Cloud Storage FUSE per i carichi di lavoro che richiedono un numero elevato di operazioni di I/O al secondo (IOPS) istantanee, note anche come query al secondo in Cloud Storage. Filestore è anche l'opzione migliore per IOPS molto elevati su un singolo file system con una latenza inferiore.
In alternativa, puoi anche utilizzare la funzionalità della cache file FUSE di Cloud Storage per basarti sulle caratteristiche di prestazioni dei media della cache sottostanti, se forniscono IOPS elevati e bassa latenza.
Esegui test di carico
Per istruzioni su come eseguire test di carico su Cloud Storage FUSE, consulta Benchmark di prestazioni nella documentazione di GitHub.
Passaggi successivi
- Scopri di più sulla memorizzazione nella cache di Cloud Storage FUSE.
- Scopri di più sulla semantica e sulla risoluzione dei problemi di Cloud Storage FUSE in GitHub.