Ottimizza e testa le prestazioni delle istanze

Questa pagina descrive le prestazioni medie previste e le impostazioni delle prestazioni consigliate per Filestore. Viene inoltre mostrato come testare le prestazioni delle istanze Filestore.

Rendimento previsto

Ogni livello di servizio Filestore offre un livello di prestazioni diverso. Le prestazioni di una determinata istanza potrebbero variare rispetto ai numeri previsti a causa di vari fattori, come l'utilizzo della memorizzazione nella cache, il numero di VM client, il tipo di macchina delle VM client e il carico di lavoro testato.

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

Prestazioni Capacità IOPS di lettura e scrittura Velocità effettiva di lettura e scrittura (MiB/s)
BASIC_HDD Da 1 TiB a 10 TiB 600/1000 100/100
BASIC_HDD Da 10 TiB a 63,9 TiB 1000/5000 180/120
BASIC_SSD Da 2,5 TiB a 63,9 TiB 60.000/25.000 1200/350
ZONAL (zona, intervallo a bassa capacità) 1 TiB 9200/2600 260/88
ZONAL (zona, intervallo a bassa capacità) 9,75 TiB 89.700/25.350 2535/858
HIGH_SCALE_SSD (ora a livello di zona, intervallo ad alta capacità) 10 TiB 92.000/26.000 2600/880
HIGH_SCALE_SSD (ora a livello di zona, intervallo ad alta capacità) 100 TiB 920.000/260.000 26.000/8.800
ENTERPRISE 1 TiB 12.000/4000 120/100
ENTERPRISE 10 TiB 120.000/40.000 1200/1000

La tabella precedente mostra le prestazioni previste alle capacità minima e massima per ciascun livello di servizio. Tra questi limiti, le prestazioni scalano in modo lineare come la scalabilità della capacità. Ad esempio, se raddoppi la capacità di un'istanza aziendale da 1 TiB a 2 TiB, le prestazioni previste dell'istanza raddoppiano da 12.000/4000 IOPS di lettura e scrittura a 24.000/8000 IOPS di lettura e scrittura.

In scenari con un solo client o con pochi client, è necessario aumentare il numero di connessioni TCP con l'opzione di montaggio nconnect per ottenere le massime prestazioni NFS. Ti consigliamo di specificare fino a 7 connessioni per il livello di servizio a livello di zona e fino a 2 connessioni per il livello Enterprise. In generale, maggiore è la capacità di condivisione file e minore è il numero di VM client che si connettono, maggiori sono le prestazioni che ottieni specificando connessioni aggiuntive con nconnect.

Tipo di macchina client consigliato

Consigliamo di utilizzare un tipo di macchina Compute Engine, ad esempio n2-standard-8, che fornisce una larghezza di banda in uscita pari a 16 Gbps. Questa larghezza di banda in uscita consente al client di raggiungere circa 16 Gbps di larghezza di banda in lettura per carichi di lavoro compatibili con la cache. Per ulteriori informazioni, consulta Larghezza di banda di rete.

Opzioni di montaggio per client Linux

Consigliamo di utilizzare le seguenti opzioni di montaggio NFS, in particolare il montaggio hard, async e le opzioni rsize e wsize, per ottenere le migliori prestazioni sulle istanze VM del 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 decisecondi (60 secondi) prima di riprovare una richiesta NFS.
retrans=3 Il client NFS tenta le richieste NFS tre volte prima di intraprendere un'ulteriore azione di ripristino.
rsize=262144 Il client NFS può ricevere dal server NFS un massimo di 262.144 byte per ogni richiesta READ.
Nota: per le istanze di livello base, imposta il valore rsize su 1048576.
wsize=1048576 Il client NFS può inviare un massimo di 1.048.576 byte (1 MiB) al server NFS per ogni richiesta WRITE.
resvport Il client NFS utilizza una porta di origine con privilegi per comunicare con il server NFS per questo punto di montaggio.
async Il client NFS ritarda l'invio delle scritture dell'applicazione al server NFS fino a quando non vengono soddisfatte determinate condizioni.
Attenzione: l'utilizzo dell'opzione sync riduce notevolmente le prestazioni.

Prestazioni delle VM con un solo client e con più client

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

Per le istanze di enterprise- e di livello di zona, sono necessarie almeno quattro VM client per sfruttare al massimo le prestazioni. Questo garantisce che tutte le VM nel cluster Filestore sottostante vengano utilizzate appieno.

Per un maggiore contesto, il cluster Filestore scalabile più piccolo ha quattro VM. Ogni VM client comunica con una sola VM del 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.

Migliora le prestazioni in tutte le risorse Google Cloud

Le operazioni su più risorse Google Cloud, come la copia dei dati da Cloud Storage a un'istanza Filestore utilizzando gsutil, possono essere lente. Per ridurre i problemi di prestazioni, prova a procedere nel seguente modo:

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

    Le due regioni offrono un'opzione con le massime prestazioni per i dati archiviati in Cloud Storage. Se utilizzi questa opzione, assicurati che le altre risorse risiedano in una delle singole regioni contenute nella doppia regione. Ad esempio, se i tuoi dati di Cloud Storage si trovano 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 DP e confronta le prestazioni di un'istanza Filestore.

    • Se la VM collegata a DP ha prestazioni simili o più lente rispetto all'istanza Filestore, questo potrebbe indicare un collo di bottiglia delle prestazioni non correlato a Filestore. Prova quanto segue per migliorare le prestazioni di riferimento delle tue risorse non Filestore:

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

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

    • Se le prestazioni dell'istanza Filestore sono notevolmente più lente rispetto alla VM collegata a DP, prova a distribuire l'operazione su più VM.

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

      • Per le istanze di enterprise- e di livello di zona, sono necessarie almeno quattro VM client per sfruttare al massimo le prestazioni. Ciò garantisce che tutte le VM nel cluster Filestore sottostante siano pienamente utilizzate. Per ulteriori informazioni, consulta Prestazioni delle VM con un solo client e con più client.

Test del rendimento

Se usi Linux, puoi utilizzare lo strumento fio per confrontare la velocità effettiva di lettura e scrittura e le IOPS per le istanze di livello base. Tieni presente che questo metodo per il benchmarking delle prestazioni non è consigliato per le istanze di livello aziendale e di zona.

Gli esempi di questa sezione mostrano benchmark comuni che potresti voler eseguire. Potrebbe essere necessario eseguire fio da più istanze VM del client per ottenere le massime prestazioni.

L'esempio seguente definisce la velocità effettiva massima 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=write --blocksize=1m --iodepth=64 --readwrite=write

Nei seguenti benchmark di esempio, il 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

L'esempio seguente definisce la velocità effettiva massima 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=read --blocksize=1m --iodepth=64 --readwrite=read

I seguenti benchmark di esempio indicano 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