Panoramica della memorizzazione nella cache in Cloud Storage FUSE

Cloud Storage FUSE fornisce quattro tipi di memorizzazione nella cache facoltativa per aiutare ad aumentare prestazioni del recupero dati:

Panoramica della memorizzazione nella cache dei file

La cache dei file di Cloud Storage FUSE è una cache di lettura basata su client che pubblica legge il file da uno spazio di archiviazione cache più rapido di tua scelta.

Vantaggi della memorizzazione nella cache dei file

  • Prestazioni migliorate: la memorizzazione nella cache dei file migliora la latenza e la velocità effettiva di che fornisce la lettura direttamente dal supporto della cache. Operazioni di I/O piccole e casuali può essere significativamente più veloce se fornito dalla cache.

  • Utilizza capacità esistente: la memorizzazione nella cache dei file può utilizzare la capacità di provisioning esistente della tua cache per la directory della cache senza che ti vengano addebitati spazio di archiviazione aggiuntivo. Sono incluse le unità SSD locali fornite in bundle Tipi di macchine GPU Cloud come a2-ultragpu, a3-highgpu, Persistent Disk (ovvero il disco di avvio utilizzato da ogni VM), o /tmpfs in memoria.

  • Costi ridotti: i hit della cache vengono pubblicati localmente e non vengono addebitati Costi delle operazioni Cloud Storage o della rete.

  • Miglioramento del costo totale di proprietà per l'addestramento AI e ML: memorizzazione nella cache dei file aumenta l'utilizzo di GPU Cloud e Cloud TPU caricando i dati il che riduce i tempi di addestramento e fornisce un rapporto prezzo/prestazioni per i carichi di lavoro di addestramento di AI e ML.

Abilita e configura la cache dei file

La cache dei file è disattivata per impostazione predefinita e può essere attivata e configurata utilizzando un file di configurazione di Cloud Storage FUSE. Puoi controllare la memorizzazione nella cache utilizzando i seguenti campi:

  • max-size-mb: controlla la capacità massima nella directory della cache occupati dai dati memorizzati nella cache. Per impostazione predefinita, il campo max-size-mb è impostato i dati memorizzati nella cache aumentano fino a occupare tutta la capacità disponibile .

  • cache-dir: specifica una directory per l'archiviazione dei dati della cache di file. Tieni presente che la specifica di una directory della cache è un prerequisito per l'abilitazione della cache dei file.

  • ttl-secs: determina quando i dati memorizzati nella cache diventano obsoleti e devono essere aggiornato da Cloud Storage. Per impostazione predefinita, il campo ttl-secs è impostato su scadono e aggiorna da Cloud Storage dopo 60 secondi di inattività. Ti consigliamo di aumentare questo valore.

    Per scoprire come controllare l'annullamento della convalida dei dati della cache, consulta Configurazione dell'annullamento della convalida dei dati della cache. Per ulteriori informazioni l'eliminazione dei dati memorizzati nella cache, consulta Rimozione.

  • enable-parallel-downloads: accelera le prestazioni di lettura per le applicazioni di grandi dimensioni file di dimensioni superiori a 1 GB, incluse le letture per la prima volta, utilizzando più worker per scaricare un file in parallelo utilizzando la cache dei file come buffer di precaricamento. Ti consigliamo di attivare le funzionalità per le operazioni di pubblicazione e ripristino dei checkpoint. Per ulteriori informazioni sull'attivazione e la configurazione dei download paralleli, consulta Configurare i download paralleli.

Casuale e Letture parziali

Se la prima operazione di lettura del file inizia dall'inizio del file, nel offset 0, la cache del file Cloud Storage FUSE importa e carica l'intero file nella cache, anche se leggi solo da un sottoinsieme ridotto di intervalli. Questo consente la pubblicazione di letture casuali o parziali successive dello stesso oggetto direttamente dalla cache.

Se la prima operazione di lettura di un file inizia da un punto qualsiasi che non sia l'offset 0, Per impostazione predefinita, Cloud Storage FUSE non attiva il recupero asincrono del file completo. Per modificare questo comportamento in modo che Cloud Storage FUSE importi un file in cache dopo una lettura casuale iniziale, imposta cache-file-for-range-read per true. Ti consigliamo di attivare cache-file-for-range-read se vengono eseguite molte operazioni di lettura casuali o parziali lo stesso oggetto.

Eliminazione

L'eliminazione dei metadati e dei dati memorizzati nella cache si basa su dati utilizzati meno di recente (LRU) che inizia una volta impostata la soglia di spazio Hai raggiunto il limite di max-size-mb. Se la voce scade in base al suo TTL, viene restituito La chiamata di recupero dei metadati viene effettuata prima di tutto a Cloud Storage ed è soggetta alla rete e la latenza minima. Poiché i dati e i metadati vengono gestiti separatamente, la rimozione o la invalidazione di un'entità e non dell'altra.

Prestazioni

La memorizzazione nella cache di Cloud Storage FUSE funziona con qualsiasi directory specificata dall'utente supportata in base allo spazio di archiviazione che preferisci, ad esempio SSD locale, Persistent Disk, in memoria tmpfs o Filestore. Cache FUSE di Cloud Storage le prestazioni corrispondono allo spazio di archiviazione sottostante utilizzato dalla cache con un overhead minimo. Per saperne di più sulle prestazioni della memorizzazione nella cache, consulta Prestazioni e best practice per la memorizzazione nella cache di Cloud Storage FUSE.

Persistenza

Le cache di Cloud Storage FUSE non sono rese persistenti su operazioni di smontaggio e riavvio. Per file per la memorizzazione nella cache, mentre le voci di metadati necessarie per gestire i file rimossi in caso di smontaggio e riavvii, i dati nella cache dei file potrebbero essere ancora presenti nella directory dei file. Dovresti eliminare i dati nella directory della cache dei file dopo si smonta o si riavvia.

Sicurezza

Quando attivi la memorizzazione nella cache, Cloud Storage FUSE utilizza la directory della cache specificata utilizzando il campo cache-dir come directory sottostante in modo che la cache in modo permanente i file dal tuo bucket Cloud Storage in formato non criptato. Qualsiasi utente o processo che ha accesso a questa directory della cache può accedere a questi file. Ti consigliamo di limitare l'accesso a questa directory.

Accesso diretto o multiplo alla cache dei file

Utilizzo di un processo diverso da Cloud Storage FUSE per accedere o modificare un file nella la directory della cache può danneggiare i dati. Le cache di Cloud Storage FUSE sono specifiche a ciascun processo in esecuzione di Cloud Storage FUSE senza consapevolezza Processi di Cloud Storage FUSE in esecuzione sulla stessa macchina o su macchine diverse. Pertanto, non è consigliabile utilizzare la stessa directory della cache per diversi Cloud Storage FUSE i processi di machine learning.

Se più processi di Cloud Storage FUSE devono essere eseguiti sulla stessa macchina, Il processo Cloud Storage FUSE deve ottenere la propria directory della cache specifica oppure utilizzare uno dei seguenti metodi per assicurarti che i dati non vengano danneggiati:

  • Per montare tutti i bucket con una cache condivisa, utilizza il montaggio dinamico per montare tutti ai bucket a cui hai accesso in un singolo processo con una cache condivisa. Per ulteriori informazioni vedi Montaggio dinamico di Cloud Storage FUSE.

  • Abilita la memorizzazione nella cache in un bucket specifico: abilita la memorizzazione nella cache solo su un bucket specificato utilizzando il montaggio statico. Per saperne di più, vedi Montaggio statico di Cloud Storage FUSE.

  • Memorizza nella cache solo una cartella o una directory specifica: monta e memorizza nella cache solo una cartella una cartella specifica a livello di bucket, invece di montare un intero bucket. Per ulteriori informazioni vedi Montare una directory all'interno di un bucket.

Panoramica della memorizzazione nella cache delle statistiche

La cache delle statistiche di Cloud Storage FUSE è una cache per i metadati degli oggetti che il rendimento per operazioni specifiche di attributi dei file come dimensioni, data e ora di modifica o autorizzazioni. L'utilizzo della cache delle statistiche migliora la latenza utilizzando memorizzati nella cache per eseguire operazioni anziché inviare una richiesta di oggetto stat di archiviazione ideale in Cloud Storage. Per impostazione predefinita, la cache delle statistiche è abilitata con un Valore stat-cache-max-size-mb di 32 MB e valore ttl-secs impostato su 60 secondi. Ti consigliamo di aumentare entrambi i valori. Per scoprire di più sulla memorizzazione nella cache delle statistiche, consulta la documentazione sulla semantica su GitHub.

Panoramica dei tipi di memorizzazione nella cache

La cache di tipo Cloud Storage FUSE è una cache di metadati che accelera le prestazioni per operazioni sui metadati specifiche dell'esistenza di file o directory. Utilizzo del tipo di cache migliora la latenza riducendo il numero di richieste inviate Cloud Storage per verificare l'esistenza di un file o di una directory archiviando questo informazioni a livello locale. Per impostazione predefinita, il tipo di cache è abilitato con un Valore type-cache-max-size-mb di 4 MB e un valore ttl-secs di 60 secondi del predefinito. Ti consigliamo di aumentare entrambi i valori. Per scoprire di più sulla memorizzazione nella cache dei tipi, consulta la documentazione sulla semantica su GitHub.

Panoramica della memorizzazione nella cache dell'elenco

La cache dell'elenco di Cloud Storage FUSE è destinata all'elenco di directory e file o ls, risposte che migliorano la velocità delle operazioni degli elenchi. La memorizzazione nella cache degli elenchi è particolarmente utile per carichi di lavoro che ripetono l'elenco completo delle directory durante l'esecuzione, come le esecuzioni di addestramento AI/ML.

La cache dell'elenco viene mantenuta nella cache della pagina, controllata dal basato sulla disponibilità di memoria, anziché sulle cache stat e type, che vengono conservati nella memoria della macchina e controllati da Cloud Storage FUSE.

Abilita memorizzazione nella cache dell'elenco

La cache dell'elenco è disattivata per impostazione predefinita. Puoi abilitare la memorizzazione nella cache degli elenchi utilizzando Campo kernel-list-cache-ttl-secs con uno dei seguenti valori:

  • Un valore positivo che rappresenta la durata (TTL) in secondi da conservare la risposta dell'elenco di directory nella cache della pagina del kernel.

  • Un valore -1 per bypassare la scadenza della voce e restituire la risposta dell'elenco dalla cache quando è disponibile.

Per attivare e configurare la memorizzazione nella cache degli elenchi, consulta il file di configurazione di Cloud Storage FUSE.

Configura l'annullamento della convalida della cache

Le seguenti sezioni descrivono come configurare l'annullamento della convalida della cache per tutti tipi di cache.

Annullamento convalida cache di file, statistiche e tipo

Per le cache di file, statistiche e tipi, il campo ttl-secs specifica il TTL in secondi di utilizzo dei metadati memorizzati nella cache dal momento del recupero da Cloud Storage fino alla scadenza e alla necessità di un aggiornamento.

Puoi configurare ttl-secs in un file di configurazione di Cloud Storage FUSE.

Il campo ttl-secs è impostato su 60 per impostazione predefinita. Se specifichi un valore per ttl-secs maggiore di 0, i metadati per la cache dei file rimane valida solo per il tempo specificato. Per la memorizzazione nella cache di file, consigliamo di aumentare il valore ttl-secs in base al il tempo previsto tra una lettura ripetuta e l'altra per bilanciare le esigenze di coerenza. In base all'importanza e alla frequenza di modifica dei dati, ti consigliamo impostando il valore ttl-secs al massimo consentito dal tuo carico di lavoro. Quando voce di metadati non è più valida, viene eseguita una query sulle letture successive da di archiviazione ideale in Cloud Storage.

Oltre ad accettare valori che rappresentano un TTL specifico secondi prima che i metadati memorizzati nella cache scadano e debbano essere aggiornati, puoi utilizzare i seguenti valori per specificare la modalità di lettura del file:

  • Valore ttl-secs di 0: garantisce il file con i dati più aggiornati viene letta eseguendo una chiamata di metadati GET a Cloud Storage che controlla il file da cui viene pubblicato per verificare che la cache sia coerente. Se il file nella cache è aggiornato, viene fornito direttamente dalla cache. La specifica di un valore diverso da 0 può comportare un rendimento ridotto perché occorre sempre effettuare una chiamata a Cloud Storage per controllare prima i metadati. Se il file si trova nella cache e non è cambiato, viene pubblicato dalla Cache con coerenza dopo la chiamata ai metadati GET.

  • Valore ttl-secs di -1: garantisce che il file venga sempre letto dalla cache se disponibili, senza verificare la coerenza. File disponibili per la pubblicazione senza la verifica della coerenza può generare dati incoerenti e dovrebbe essere utilizzata temporaneamente per i carichi di lavoro eseguiti in job con dati che non cambiano. Per ad esempio, l'utilizzo del valore -1 è utile per l'addestramento del machine learning, dove gli stessi dati vengono letti in più epoche senza modifiche.

Annullamento convalida cache elenco

L'annullamento della convalida della cache dell'elenco viene impostato specificando un valore maggiore di 0 utilizzando il metodo kernel-list-cache-ttl-secs. La risposta dell'elenco di directory viene conservata cache della pagina del kernel e rimane valida per il tempo specificato. Per impostazione predefinita, la cache dell'elenco è disattivata e impostata sul valore 0. Quando specifica il valore -1, Cloud Storage FUSE disabilita la scadenza della cache dell'elenco e restituisce la risposta "list" dalla cache quando è disponibile.

Percorso di lettura per i dati memorizzati nella cache

La cache di Cloud Storage FUSE accelera le letture ripetute importati nella cache. Sia la prima lettura sia gli errori della cache passano direttamente a Cloud Storage e sono soggetti alle normali e la latenza di rete.

Considerazioni

  • È possibile abilitare la memorizzazione nella cache di file, la memorizzazione nella cache delle statistiche, il tipo di memorizzazione nella cache o la memorizzazione nella cache di un elenco Aumentare le prestazioni ma ridurre la coerenza, cosa che di solito si verifica quando accedi allo stesso bucket utilizzando più client con un un tasso di variazione elevato. Per ridurre l'impatto sulla coerenza, ti consigliamo montare bucket in sola lettura. Per scoprire di più sul comportamento della memorizzazione nella cache, consulta Documentazione sulla semantica di Cloud Storage FUSE su GitHub.

  • Se una voce della cache di file non è ancora scaduta in base al relativo TTL e il file è nella cache, l'intera operazione viene gestita dalla cache del client locale senza che venga inviata alcuna richiesta a Cloud Storage.

  • Se una voce della cache di file è scaduta in base al suo TTL, un'intestazione Recupera metadati viene prima effettuata la chiamata a Cloud Storage e, se il file non si trova nella cache, il file viene recuperato da Cloud Storage. Entrambe le operazioni sono soggette e la latenza di rete. Se la voce di metadati è stata invalidata, ma il file si trova nella cache e la generazione dell'oggetto non è cambiata, il file viene disponibili dalla cache solo dopo aver effettuato la chiamata per verificare se è stata effettuata se i dati sono validi.

  • Se un client Cloud Storage FUSE modifica un file memorizzato nella cache o la relativa metadati, il file viene immediatamente invalidato e viene garantita la coerenza di quanto segue lette dallo stesso client. Tuttavia, se clienti diversi accedere allo stesso file o ai relativi metadati e le voci vengono memorizzate nella cache, viene letta la versione memorizzata nella cache del file o dei metadati e non la versione aggiornata finché il file non viene invalidato dall'impostazione TTL del client specifico.

Passaggi successivi