Ottimizza e testa le prestazioni delle istanze

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Questa pagina descrive le prestazioni medie previste e le impostazioni delle prestazioni consigliate per Filestore. Mostra anche come testare le prestazioni delle tue istanze Filestore.

Rendimento previsto

Ogni livello di servizio di Filestore offre un livello diverso di prestazioni. Le prestazioni di qualsiasi istanza possono variare da numeri previsti a causa di vari fattori: utilizzo della memorizzazione nella cache, numero di VM client, tipo di macchina delle VM client e carico di lavoro testato.

Le tabelle seguenti mostrano le prestazioni previste delle istanze Filestore in base al livello di servizio e alla capacità configurata:

Prestazioni Capacità (TiB) IOPS di lettura/scrittura Velocità effettiva di lettura/scrittura (MiB/s)
BASIC_HDD 1-10 600/1000 100/100
BASIC_HDD 10-63,9 1000/5000 180/120
BASIC_SSD 2,5-63,9 60.000/25.000 1200/350
HIGH_SCALE_SSD 10 92.000/26.000 2600/880
HIGH_SCALE_SSD 100 920.000/260.000 26.000/8.800
ENTERPRISE 1 12.000/4.000 120/100
ENTERPRISE 10 120.000/40.000 1200/1000

La tabella riportata sopra mostra il rendimento previsto con la capacità massima e minima prevista sia per l'alta scalabilità sia per le aziende. Tra questi limiti, le prestazioni vengono scalate in modo proporzionale rispetto alle scala di capacità. Ad esempio, se raddoppia la capacità dell'istanza Enterprise da 1 TiB a 2 TiB, le prestazioni previste dell'istanza raddoppiano da 12.000/4000 IOPS di lettura/scrittura a 24.000/8000 IOPS di lettura/scrittura.

In scenari a client singolo e con pochi client, devi aumentare il numero di connessioni TCP con l'opzione di montaggio nconnect per ottenere le massime prestazioni NFS. Consigliamo di specificare fino a 7 connessioni per il livello High Scale e fino a 2 connessioni per il livello Enterprise. In generale, maggiore è la capacità di condivisione file e minore è il numero di VM client connesse, maggiori sono le prestazioni ottenute specificando connessioni aggiuntive con nconnect.

Tipo di macchina client consigliato

Consigliamo di avere un tipo di macchina di Compute Engine, ad esempio n2-standard-8, che offre una larghezza di banda in uscita di 16 Gbps. Questa larghezza di banda in uscita consente al client di raggiungere circa 16 Gbps di larghezza di banda di lettura per carichi di lavoro compatibili con la cache. Per saperne di più, vedi Larghezza di banda della rete.

Opzioni di montaggio client Linux

Consigliamo di utilizzare le seguenti opzioni di montaggio NFS, in particolare hard montaggio, async e con le opzioni rsize e wsize impostate su 1 MiB, per ottenere le migliori prestazioni sulle istanze VM client Linux. Per ulteriori informazioni sulle opzioni di montaggio NFS, consulta nfs.

Opzione predefinita Descrizione
hard Il client NFS riprova le richieste NFS a tempo indeterminato.
timeo=600 Il client NFS attende 600 secondi (60 secondi) prima di ritentare una richiesta NFS.
retrans=3 Il client NFS tenta le richieste NFS tre volte prima di intraprendere ulteriori azioni di recupero.
rsize=1048576 Il client NFS può ricevere un massimo di 1.048.576 byte (1 MiB) dal server NFS per la richiesta READ.
wsize=1048576 Il client NFS può ricevere un massimo di 1.048.576 byte (1 MiB) dal server NFS per la richiesta WRITE.
resvport Il client NFS utilizza una porta di origine con privilegi quando comunica con il server NFS per questo punto di montaggio.
async Il client NFS ritarda l'invio delle scritture dell'applicazione al server NFS finché non vengono soddisfatte determinate condizioni.
Attenzione: l'uso dell'opzione sync riduce notevolmente le prestazioni.

Prestazioni VM a livello di client singolo e più

I livelli di servizio scalabili di Filestore sono ottimizzati per le prestazioni di più VM client, non di una singola VM client.

Per le istanze di livello Enterprise e High Scale, sono necessarie almeno quattro VM client per sfruttare al massimo le prestazioni. Ciò garantisce che tutte le VM nel cluster Filestore sottostante siano completamente utilizzate.

Per un contesto aggiuntivo, il cluster Filestore più piccolo e scalabile ha quattro VM. Ogni VM client comunica con una sola VM cluster Filestore, indipendentemente dal numero di connessioni NFS per client specificato utilizzando l'opzione di montaggio nconnect. Se utilizzi una singola VM client, le operazioni di lettura e scrittura vengono eseguite solo da una singola VM del cluster Filestore.

Migliorare le prestazioni delle risorse di Google Cloud

Le operazioni su più risorse Google Cloud, come la copia di dati da Cloud Storage in un'istanza di Filestore utilizzando gsutil, possono essere lente. Per risolvere i problemi di prestazioni:

  • Assicurati che il bucket Cloud Storage, la VM client e l'istanza Filestore si trovino tutti nella stessa regione.

    Le due aree geografiche offrono un'opzione con il massimo rendimento per i dati archiviati in Cloud Storage. Se utilizzi questa opzione, assicurati che le altre risorse si trovino in una delle singole aree geografiche che comprendono l'area geografica doppia. Ad esempio, se i dati Cloud Storage risiedono in us-central1,us-west1, assicurati che la VM client e l'istanza Filestore si trovino in us-central1.

  • Come punto di riferimento, verifica le prestazioni di una VM collegata a un DP e confrontale con le prestazioni di un'istanza Filestore.

    • Se le prestazioni della VM collegata a PD sono simili o più lente rispetto all'istanza di Filestore, questo può indicare un collo di bottiglia delle prestazioni non correlato a Filestore. Prova quanto segue per migliorare le prestazioni di base delle tue risorse diverse da Filestore:

      • Applica l'opzione gsutil -m. Questa opzione consente l'esecuzione in parallelo delle operazioni supportate, tra cui cp, mv e rsync.

      • Applica le seguenti configurazioni di gsutil. Ciascuno di essi è un valore di configurazione di boto modificabile impostato nel file di configurazione di boto. Gli utenti possono modificare il file direttamente (consigliato) o utilizzando l'opzione -o:

    • Se le prestazioni dell'istanza Filestore sono sostanzialmente inferiori alla VM collegata a PD, prova a distribuire l'operazione su più VM.

      • Questo consente di migliorare le prestazioni delle operazioni di lettura da Cloud Storage.

      • Per istanze di livello Enterprise e High Scale, sono necessarie almeno quattro VM client per sfruttare al massimo le prestazioni. Ciò garantisce che tutte le VM nel cluster Filestore sottostante siano completamente utilizzate. Per ulteriori informazioni, consulta la pagina sulle prestazioni di VM a livello di client singolo e di più client.

Test delle prestazioni

Se usi Linux, puoi utilizzare lo strumento fio per confrontare le velocità effettiva di lettura e scrittura e le IOPS per le istanze di livello Basic. Gli esempi in questa sezione mostrano i benchmark comuni che potresti eseguire. Per ottenere il massimo rendimento, potrebbe essere necessario eseguire fio da più istanze VM del client. Questo metodo per eseguire il benchmarking delle prestazioni non fornisce risultati accurati per le istanze di livello Enterprise e High-Scale.

Il seguente esempio confronta la velocità effettiva di scrittura massima:

fio --ioengine=libaio --filesize=32G --ramp_time=2s \
--runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \
--group_reporting --directory=/mnt/nfs  \
--name=write --blocksize=1m --iodepth=64 --readwrite=write

Il seguente esempio fa riferimento al numero massimo di IOPS di scrittura:

fio --ioengine=libaio --filesize=32G --ramp_time=2s \
--runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \
--group_reporting --directory=/mnt/nfs  \
--name=randwrite --blocksize=4k --iodepth=256 --readwrite=randwrite

Il seguente esempio confronta la velocità effettiva di lettura massima:

fio --ioengine=libaio --filesize=32G --ramp_time=2s \
--runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \
--group_reporting --directory=/mnt/nfs  \
--name=read --blocksize=1m --iodepth=64 --readwrite=read

Il seguente esempio confronta il numero massimo di IOPS di lettura:

fio --ioengine=libaio --filesize=32G --ramp_time=2s \
--runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \
--group_reporting --directory=/mnt/nfs  \
--name=randread --blocksize=4k --iodepth=256 --readwrite=randread

Passaggi successivi