Ottimizza e testa le prestazioni delle istanze

Questa pagina descrive il rendimento medio previsto e le impostazioni di rendimento consigliate per Filestore. Inoltre, mostra come puoi testare il rendimento delle tue 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'uso 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 il rendimento previsto delle istanze Filestore in base al 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 1 TiB 9.200/2.600 260/88
ZONAL 9,75 TiB 89.700/25.350 2.535/858
ZONAL 10 TiB 92.000/26.000 2600/880
ZONAL 100 TiB 920.000/260.000 26.000/8.800
REGIONAL 1 TiB 12.000/4.000 120/100
REGIONAL 9,75 TiB 117.000/39.000 1.170/975
REGIONAL 10 TiB 92.000/26.000 2600/880
REGIONAL 100 TiB 920.000/260.000 26.000/8.800
ENTERPRISE 1 TiB 12.000/4.000 120/100
ENTERPRISE 10 TiB 120.000/40.000 1200/1000

La tabella precedente mostra il rendimento previsto alla capacità minima e massima per ogni livello di servizio. Tra questi limiti, il rendimento aumenta in modo lineare con l'aumento della capacità. Ad esempio, se raddoppi la capacità dell'istanza aziendale da 1 TiB a 2 TiB, il rendimento previsto dell'istanza raddoppia da 12.000/4.000 IOPS di lettura e scrittura a 24.000/8.000 IOPS di lettura e scrittura.

In scenari con un solo client o pochi client, devi aumentare il numero di connessioni TCP con l'opzione di montaggio nconnect per ottenere il massimo rendimento NFS. Ti consigliamo di specificare fino a 7 connessioni per il livello di servizio zonale e fino a 7 connessioni per i livelli regionale ed enterprise.2 In generale, maggiore è la capacità della condivisione file e minore è il numero di VM client collegate, maggiore è il rendimento ottenuto specificando connessioni aggiuntive con nconnect.

Tipo di macchina client consigliato

Ti consigliamo di utilizzare un tipo di macchina 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 una larghezza di banda di lettura di circa 16 Gbps per i carichi di lavoro cache-friendly. Per ulteriori informazioni, consulta Larghezza di banda di rete.

Opzioni di montaggio del client Linux

Per ottenere le migliori prestazioni sulle istanze VM client Linux, consigliamo di utilizzare le seguenti opzioni di montaggio NFS, in particolare hard mount, async e le opzioni rsize e wsize. 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 ulteriori azioni di recupero.
rsize=262144 Il client NFS può ricevere un massimo di 262.144 byte dal server NFS per richiesta READ.
Nota: per le istanze di livello base, imposta il valore rsize su 1048576.
wsize=1048576 Il client NFS può inviare al server NFS un massimo di 1.048.576 byte (1 MiB) per richiesta WRITE.
resvport Il client NFS utilizza una porta di origine privilegiata 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'utilizzo dell'opzione sync riduce notevolmente le prestazioni.

Prestazioni di VM client singole e multiple

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

Per le istanze zonali, regionali ed enterprise, sono necessarie almeno quattro VM client per sfruttare le prestazioni complete. In questo modo, tutte le VM nel cluster Filestore sottostante vengono utilizzate al massimo.

Per maggiori informazioni, il cluster Filestore più piccolo e scalabile ha quattro VM. Ogni VM client comunica con una sola VM del cluster Filestore, indipendentemente dal numero di connessioni NFS per client specificate 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 nelle risorse Google Cloud

Le operazioni su più risorse Google Cloud, come la copia dei dati da Cloud Storage a un'istanza Filestore utilizzando l'gcloud CLI, possono essere lente. Per contribuire ad attenuare i problemi di rendimento, prova quanto segue:

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

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

    • Se il rendimento della VM collegata a DP è simile o inferiore rispetto all'istanza Filestore, potrebbe indicare un collo di bottiglia del rendimento non correlato a Filestore. Per migliorare il rendimento di riferimento delle risorse non Filestore, puoi modificare le proprietà gcloud CLI associate ai caricamenti compositi paralleli. Per ulteriori informazioni, consulta In che modo gli strumenti e le API utilizzano i caricamenti compositi paralleli.

    • Se le prestazioni dell'istanza Filestore sono notevolmente inferiori a quelle della VM collegata al DP, prova a distribuire l'operazione su più VM.

      • In questo modo, puoi migliorare le prestazioni delle operazioni di lettura da Cloud Storage.

      • Per le istanze zonali, regionali ed enterprise, sono necessarie almeno quattro VM client per sfruttare le prestazioni complete. In questo modo, tutte le VM nel cluster Filestore sottostante vengono utilizzate al meglio. Per ulteriori informazioni, consulta Prestazioni delle VM client singole e multiple.

Rendimento dei test

Se utilizzi Linux, puoi utilizzare lo strumento fio per eseguire il benchmark della velocità effettiva di lettura e scrittura e delle IOPS per le istanze di livello base. Tieni presente che questo metodo per il benchmarking del rendimento non è consigliato per le istanze zonali, regionali ed enterprise.

Gli esempi in questa sezione mostrano i benchmark comuni che potresti voler eseguire. Per ottenere il massimo delle prestazioni, potrebbe essere necessario eseguire fio da più istanze VM client.

Il seguente esempio esegue il benchmarking della 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 esegue il benchmarking delle IOPS di scrittura massime:

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 esegue il benchmarking della 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 esegue il benchmarking delle IOPS di lettura massime:

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