Ottimizzazione del rendimento

Questa pagina fornisce dettagli su come ottimizzare le prestazioni di Google Cloud NetApp Volumes.

Prima di iniziare

Prima di apportare modifiche ai volumi per ottimizzare il rendimento, consulta considerazioni sul rendimento.

Regolare le impostazioni del volume

Puoi ottimizzare le prestazioni regolando le seguenti impostazioni del volume:

  • Aumenta la capacità del volume: puoi aumentare la capacità del volume del livello di servizio Premium, Extreme o Standard per migliorare il throughput massimo del volume. Per i volumi del livello di servizio Flex, aumenta invece la capacità dei pool di archiviazione.

  • Esegui l'upgrade del livello di servizio: puoi eseguire l'upgrade dei volumi con livello di servizio Premium al livello di servizio Extreme per migliorare il throughput. Ti consigliamo di assegnare il volume a un pool di archiviazione diverso con un livello di servizio diverso.

L'aumento della capacità del volume e l'upgrade dei livelli di servizio non influiscono sul caricamento delle attività I/O in esecuzione sul volume e non influiscono in alcun modo sull'accesso al volume.

Modificare il client

Puoi migliorare il rendimento modificando le seguenti impostazioni sul client:

  • Posiziona i client in modo da raggrupparli: i risultati della latenza sono direttamente influenzati dalle funzionalità e dalla posizione del client. Per risultati ottimali, posiziona il client nella stessa regione del volume o il più vicino possibile. Verifica l'impatto a livello di zona testando la latenza da un client in ogni zona e utilizza la zona con la latenza più bassa.

  • Configura la larghezza di banda di rete di Compute Engine: le funzionalità di rete delle macchine virtuali Compute Engine dipendono dal tipo di istanza utilizzato. In genere, le istanze più grandi possono aumentare il throughput della rete. Ti consigliamo di selezionare una macchina virtuale client con una larghezza di banda di rete appropriata, selezionare l'interfaccia di rete Google Virtual NIC (gVNIC) e attivare le prestazioni Tier_1. Per ulteriori informazioni, consulta la documentazione di Compute Engine sulla larghezza di banda della rete.

  • Apri più sessioni TCP: se la tua applicazione richiede un throughput elevato, potresti saturare la singola sessione TCP (Transmission Control Protocol) alla base di una normale sessione NFS e SMB. In questi casi, aumenta il numero di sessioni TCP utilizzate dalla connessione NFS e SMB.

    Utilizza una delle seguenti schede per modificare il client in base al tipo di client:

    Linux

    Tradizionalmente, un client NFS utilizza una singola sessione TCP per tutti i file system montati NFS che condividono un endpoint di archiviazione. L'utilizzo dell'opzione di montaggio nconnect consente di aumentare il numero di sessioni TCP supportate fino a un massimo di 16.

    Ti consigliamo le seguenti best practice per modificare il tipo di client Linux per sfruttare appieno nconnect:

    • Aumenta il numero di sessioni TCP con nconnect: ogni sessione TCP aggiuntiva aggiunge una coda per 128 richieste in attesa, migliorando la potenziale concorrenza.

    • Imposta il parametro sunrpc.max_tcp_slot_table_entries: sunrpc.max_tcp_slot_table_entries è un parametro di aggiustamento a livello di connessione che puoi modificare per controllare le prestazioni. Ti consigliamo di impostare sunrpc.max_tpc_slot_table_enteries su 128 richieste o per connessione e di non superare i 10.000 slot per tutti i client NFS all'interno di un singolo progetto che si connette ai volumi NetApp. Per impostare il parametro sunrpc.max_tcp_slot_table_entries, aggiungilo al file /etc/sysctl.conf e ricarica il file dei parametri utilizzando il comando sysctl -p.

    • Imposta il valore massimo supportato per sessione su 180: a differenza di NFSv3, i client NFSv4.1 definiscono la relazione tra il client e il server nelle sessioni. Sebbene NetApp Volumes supporti fino a 128 richieste in sospeso per connessione utilizzando NFSv3, NFSv4.1 è limitato a 180 richieste in sospeso per sessione. Per impostazione predefinita, i client NFSv4.1 Linux hanno un valore di 64 max_session_slots per sessione, ma puoi ottimizzare questo valore in base alle tue esigenze. Ti consigliamo di modificare il valore massimo supportato per sessione impostandolo su 180.

      Per ottimizzare max_session_slots, crea un file di configurazione in /etc/modprobe.d. Assicurati che non vengano visualizzate virgolette (" ") in linea. In caso contrario, l'opzione non viene applicata.

      $ echo "options nfs max_session_slots=180" > /etc/modprobe/d/nfsclient/conf
      $ reboot
      
      Use the systool -v -m nfs command to see the current maximum in use
      by the client. For the command to work, at least one NFSv4.1 mount
      must be in place.
      
      $ systool -v -v nfs
      {
      Module = "nfs"
      
      Parameters:
      
      Max_session_slots = "63" <-
      
      }
      

    Il seguente grafico di confronto nconnect NFS mostra l'impatto che l'utilizzo della configurazione nconnect può avere su un carico di lavoro NFS. Queste informazioni sono state acquisite utilizzando Fio con le seguenti impostazioni:

    • Workload di lettura al 100%

    • Dimensione del blocco di 8 KiB rispetto a un singolo volume

    • Macchina virtuale n2-standard-32 che utilizza il sistema operativo Red Hat 9

    • Set di lavoro di 6 TiB

    L'utilizzo di un valore nconnect pari a 16 ha generato un rendimento cinque volte superiore rispetto a quando non era attivato.

    Confronto di NFS nconnect utilizzando una singola macchina virtuale Red Hat 9 con una dimensione del blocco di 8 KiB.

    Windows

    Per i client basati su Windows, il client può utilizzare SMB Multichannel con RSS (Receive Side Scaling) per aprire più connessioni TCP. Per ottenere questa configurazione, la macchina virtuale deve avere un adattatore di rete allocato che supporti RSS. Ti consigliamo di impostare RSS su quattro o acht valori, tuttavia qualsiasi valore superiore a 1 dovrebbe aumentare il throughput.

    Il seguente grafico mostra la differenza che l'utilizzo della configurazione RSS può avere su un carico di lavoro SMB. Queste informazioni sono state acquisite utilizzando Fio con le seguenti impostazioni:

    • Workload di lettura al 100%

    • Dimensione del blocco di 8 KiB rispetto a un singolo volume

    • Singola macchina virtuale n2-standard-32 che esegue un sistema operativo Windows 2022

    • Set di lavoro di 6 TiB

    Sono stati eseguiti otto job con solo l'opzione RSS del client SMB che variava tra un'esecuzione di test e l'altra. L'utilizzo di valori RSS pari a 4, 8 e 16 ha raddoppiato il rendimento rispetto all'utilizzo di un valore pari a 1. Ogni istanza RSS è stata eseguita nove volte con un parametro numjobs pari a 8. Il parametro iodepth è stato incrementato di cinque a ogni esecuzione fino al raggiungimento della velocità in uscita massima.

    Confronto RSS SMB di una singola VM Windows 2022 con un blocco di 8 KiB

Passaggi successivi

Scopri di più sui pool di archiviazione.