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 le considerazioni sul rendimento.
Regolare le impostazioni del volume
Puoi ottimizzare le prestazioni modificando 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 la velocità effettiva massima del volume raggiungibile. Per i volumi con 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 del livello di servizio Premium al livello di servizio Extreme per migliorare la velocità effettiva. Ti consigliamo di assegnare il volume a un pool di archiviazione diverso con un livello di servizio diverso.
Utilizza pool QoS manuali per assegnare una velocità effettiva maggiore: puoi diminuire la velocità effettiva assegnata ai volumi più grandi con requisiti di velocità effettiva bassi e aumentare la velocità effettiva dei volumi più piccoli che richiedono prestazioni più elevate fino alla velocità effettiva disponibile del pool.
L'aumento della capacità del volume e l'upgrade dei livelli di servizio non interrompono i workload I/O in corso sul volume e non influiscono in alcun modo sull'accesso al volume.
Regolare il client
Puoi migliorare il rendimento modificando le seguenti impostazioni sul client:
Posizionare i client insieme: i risultati della latenza sono influenzati direttamente dalle funzionalità e dalla posizione del client. Per risultati ottimali, posiziona il client nella stessa regione del volume o il più vicino possibile. Testa l'impatto zonale testando la latenza di 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 generare un throughput di rete maggiore. 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 di rete.Apri più sessioni TCP: se la tua applicazione richiede una velocità effettiva elevata, potresti saturare la singola sessione TCP (Transmission Control Protocol) che è 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 su 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.Per sfruttare al meglio
nconnect
, ti consigliamo le seguenti best practice per la modifica del tipo di client Linux:Aumenta il numero di sessioni TCP con
nconnect
: ogni sessione TCP aggiuntiva aggiunge una coda per 128 richieste in sospeso, migliorando la potenziale concorrenza.Imposta il parametro
sunrpc.max_tcp_slot_table_entries
:sunrpc.max_tcp_slot_table_entries
è un parametro di regolazione a livello di connessione che puoi modificare per controllare le prestazioni. Ti consigliamo di impostaresunrpc.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 NetApp Volumes. Per impostare il parametrosunrpc.max_tcp_slot_table_entries
, aggiungilo al file/etc/sysctl.conf
e ricarica il file dei parametri utilizzando il comandosysctl -p
.Ottimizza il valore massimo supportato per sessione a 180: a differenza di NFSv3, i client NFSv4.1 definiscono la relazione tra il client e il server nelle sessioni. Mentre NetApp Volumes supporta fino a 128 richieste in sospeso per connessione utilizzando NFSv3, NFSv4.1 è limitato a 180 richieste in sospeso per sessione. I client Linux NFSv4.1 utilizzano per impostazione predefinita
64 max_session_slots
per sessione, ma puoi modificare 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 NFS
nconnect
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 9Set di lavoro di 6 TiB
L'utilizzo di un valore
nconnect
pari a 16 ha comportato un rendimento cinque volte superiore rispetto a quando non era attivato.Windows
Per i client basati su Windows, il client può utilizzare SMB Multichannel con Receive Side Scaling (RSS) per aprire più connessioni TCP. Per ottenere questa configurazione, la tua macchina virtuale deve avere una scheda di rete allocata che supporti RSS. Ti consigliamo di impostare RSS su quattro o otto valori, ma qualsiasi valore superiore a uno dovrebbe aumentare la velocità effettiva.
Il seguente grafico mostra la differenza che l'utilizzo della configurazione RSS può avere su un workload 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 2022Set di lavoro di 6 TiB
Sono stati eseguiti otto job con la sola opzione RSS client SMB che cambia tra le esecuzioni dei test. 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 parametroiodepth
è stato aumentato di cinque a ogni esecuzione fino al raggiungimento della velocità effettiva massima.
QoS manuale
La qualità del servizio (QoS) manuale in NetApp Volumes ti consente di regolare le prestazioni del volume per soddisfare i requisiti del carico di lavoro e controllare i costi di archiviazione.
QoS manuale offre i seguenti vantaggi:
Ottimizzazione dei costi: ridimensiona le prestazioni del volume all'interno della capacità del pool di archiviazione per ottimizzare i costi del cloud.
Regolazione istantanea della velocità effettiva: regola la velocità effettiva del volume senza tempi di inattività.
Riduzione dei costi di ripristino di emergenza: riduci la QoS per i volumi replicati per ridurre i costi di ripristino di emergenza per i pool di destinazione.
Rendimento migliorato per cloni o cache: aumenta il rendimento per i volumi di cloni o cache con dimensioni allocate ridotte.
Gestione flessibile dei carichi di lavoro: utilizza pool di archiviazione più grandi come contenitori per più carichi di lavoro, regolando la velocità effettiva di ogni volume in base alle esigenze.
Considerazioni
Puoi gestire la QoS manuale utilizzando Google Cloud CLI, l'API NetApp Volumes o Terraform. La console Google Cloud non è supportata.
Il QoS manuale è supportato per i livelli di servizio Standard, Premium ed Extreme e non è disponibile per il livello di servizio Flex.
Configurare i limiti QoS manuali
Per i volumi all'interno di un pool di archiviazione QoS manuale, puoi impostare throughput e capacità in modo indipendente. Il throughput complessivo di tutti i volumi in un pool QoS manuale è limitato dal throughput totale del pool. Il throughput del pool è determinato da capacità allocata e livello di servizio. Ad esempio, un pool Premium da 40 TiB può raggiungere un throughput massimo di 2560 MiBps a 64 MiBps per TiB, mentre un pool Extreme da 200 TiB può supportare volumi con un throughput combinato di 25.600 MiBps.
Una volta configurato il pool QoS manuale, puoi impostare il limite di throughput richiesto per ogni volume al suo interno. Il limite di throughput massimo per un singolo volume è 4, 5 GiBps o 30 GiBps per i volumi ad alta capacità.
I comandi o le API del pool e del volume mostrano i valori di throughput disponibili e assegnati per il pool per aiutarti a gestire il throughput totale. Per creare un pool QoS manuale e definire la velocità effettiva del volume, consulta Crea un pool di archiviazione e Crea un volume.
Crea un pool di archiviazione
gcloud
Crea un pool di archiviazione utilizzando la QoS manuale:
gcloud netapp storage-pools create POOL_NAME \ --project=PROJECT_ID \ --location=LOCATION \ --capacity=CAPACITY \ --service-level=SERVICE_LEVEL \ --qos-type=QOS_TYPE \ --network=name=NETWORK_NAME
Sostituisci le seguenti informazioni:
POOL_NAME
: il nome del pool che vuoi creare. Il nome del pool deve essere univoco per ogni località.PROJECT_ID
: il nome del progetto in cui vuoi creare il pool di archiviazione.LOCATION
: la località del pool che vuoi creare.CAPACITY
: la capacità del pool in GiB.SERVICE_LEVEL
: il livello di servizio per il pool di archiviazione: Standard, Premium o Extreme.QOS_TYPE
: il tipo di QoS del pool di archiviazione: automatico o manuale.NETWORK_NAME
: il nome del VPC.
Modificare un pool di archiviazione
gcloud
Modifica un pool di archiviazione QoS automatico esistente per utilizzare QoS manuale:
gcloud netapp storage-pools update POOL_NAME \ --project=PROJECT_ID \ --location=LOCATION \ --qos-type=QOS_TYPE
Sostituisci le seguenti informazioni:
POOL_NAME
: il nome del pool che vuoi aggiornare.PROJECT_ID
: il nome del progetto.LOCATION
: la posizione del pool.QOS_TYPE
: il tipo di QoS aggiornato per il pool di archiviazione. È supportata solo la configurazione manuale.
Crea un volume
gcloud
Crea un volume con il limite di velocità effettiva QoS manuale specificato utilizzando il seguente comando:
gcloud netapp volumes create VOLUME_NAME \ --project=PROJECT_ID \ --location=LOCATION \ --storage-pool=STORAGE_POOL \ --capacity=CAPACITY \ --protocols=PROTOCOLS \ --share-name=SHARE_NAME \ --throughput-mibps=THROUGHPUT_MIBPS
Sostituisci le seguenti informazioni:
VOLUME_NAME
: il nome del volume. Questo nome deve essere univoco per località.PROJECT_ID
: il nome del progetto in cui creare il volume.LOCATION
: la posizione del volume.STORAGE_POOL
: il pool di archiviazione in cui creare il volume.CAPACITY
: la capacità del volume. Definisce la capacità visualizzata dai client NAS.PROTOCOLS
: scegli i protocolli NAS con cui viene esportato il volume. Le scelte valide sono NFSv3, NFSv4, SMB e le seguenti combinazioni:nfsv3,nfsv4
nfsv3,smb
nfsv4,smb
A seconda del tipo di protocollo scelto, ti consigliamo di aggiungere i parametri specifici del protocollo, ad esempio
export-policy
osmb-settings
.SHARE_NAME
: il percorso di esportazione NFS o il nome della condivisione SMB del volume.THROUGHPUT_MIBPS
: il limite di throughput del volume in MiBps.
Per ulteriori informazioni sui flag facoltativi aggiuntivi, consulta la documentazione di Google Cloud SDK sulla creazione di volumi.
Passaggi successivi
Scopri di più sui pool di archiviazione.