Ottimizza i client NFS Linux

Questa pagina descrive come ottimizzare i client NFS Linux che montano le esportazioni di NetApp Volumes. Per molti workload, l'ottimizzazione non è necessaria. A meno che tu non abbia bisogno di un throughput più elevato, di più IOPS, di un carico di metadati inferiore su l volume o di un comportamento di memorizzazione nella cache specifico, utilizza il comando mount dalla Google Cloud console.

Per saperne di più sui passaggi di connessione, sulla configurazione delle policy di esportazione e sui comandi di montaggio , consulta Connettere i client NFS.

Configurare i client

Configura le impostazioni NFS di Linux nel seguente ordine:

  1. Concorrenza del kernel: prima di montare il file system, imposta il numero di slot di richiesta NFS (voci della tabella degli slot per NFSv3 o slot di sessione per NFSv4.1). Se modifichi le impostazioni, devi rimontare il file system. Per saperne di più, consulta Concorrenza NFS di Linux.

  2. Opzioni di montaggio: scegli la versione del protocollo, le dimensioni di I/O, il numero di connessioni TCP , il blocco e le opzioni correlate alla cache al momento del montaggio. Per saperne di più, consulta Opzioni di montaggio NFS di Linux.

  3. Lettura anticipata: regola il prefetch di lettura sequenziale per punto di montaggio dopo che il volume è stato montato. Per saperne di più, consulta Lettura anticipata NFS di Linux.

La tabella seguente riassume questi passaggi di configurazione:

Passaggio Quando Cosa controlla Dove configurare Guida
1 Prima del primo montaggio o prima del rimontaggio Operazioni RPC in sospeso per connessione TCP; comandi NFSv4.1 per sessione /etc/sysctl.conf,
/etc/modprobe.d/
Concorrenza NFS di Linux
2 Al momento del montaggio Protocollo, dimensioni del trasferimento di I/O, numero di connessioni, blocco e cache degli attributi mount -o, /etc/fstab Opzioni di montaggio NFS di Linux
3 Dopo il montaggio Prefetch di lettura sequenziale /sys/class/bdi/.../read_ahead_kb, regole udev Lettura anticipata NFS di Linux

Come funzionano insieme le impostazioni

Il kernel Linux definisce la concorrenza per connessione (passaggio 1 della tabella precedente). L'opzione di montaggio nconnect (passaggio 2 della tabella precedente) consente di aprire più connessioni TCP da un client allo stesso indirizzo IP del volume.

La concorrenza approssimativa per un client viene calcolata nel seguente modo:

(slots per connection) x (nconnect value)

Ogni connessione TCP a un endpoint NFS di NetApp Volumes supporta fino a 128 operazioni in sospeso per connessione per NFSv3. NFSv4.1 negozia anche i limiti a livello di sessione; una singola connessione TCP può limitare la concorrenza effettiva al di sotto del massimo della sessione. Per saperne di più, consulta Concorrenza NFS di Linux.

Se più client montano lo stesso indirizzo IP del volume, utilizza un limite di slot per client inferiore in modo che il totale delle operazioni in sospeso nella flotta di client rimanga entro i limiti consigliati.

Configura la lettura anticipata per punto di montaggio (passaggio 3 della tabella precedente). Dipende dall'opzione di montaggio rsize e dalle impostazioni predefinite della distribuzione Linux. Alcune distribuzioni utilizzano una lettura anticipata fissa di 128 KiB indipendentemente da rsize, il che può ridurre le prestazioni di lettura sequenziale fino a quando non la regoli.

Le opzioni di montaggio e le impostazioni del kernel non modificano le policy di esportazione, la configurazione Kerberos, i requisiti del firewall o i limiti di throughput e IOPS a livello di servizio del volume.

Punti di partenza del workload

La tabella seguente fornisce i punti di partenza. Convalida le impostazioni con l'applicazione, la distribuzione Linux e il percorso di rete.

Workload Concorrenza del kernel Opzioni di montaggio Lettura anticipata
Uso generico Impostazione predefinita del sistema operativo Utilizza le istruzioni di montaggio della Google Cloud console Impostazione predefinita del sistema operativo
Singola VM, throughput/IOPS elevati
  • Limita la tabella degli slot per connessione a 128 o meno
  • Per NFSv4.1, imposta max_session_slots fino al massimo del server
  • Utilizza nconnect=2 o un valore superiore se hai bisogno di più di 128 operazioni in sospeso
  • nconnect=8 a nconnect=16
  • Regola rsize e wsize
Ottimizza se i workload sono vincolati alla lettura sequenziale
Molti client (EDA/HPC/render farm)
  • Slot bassi per client (ad esempio, 8)
  • Mantieni il totale degli slot per IP del volume entro i limiti consigliati
  • Spesso NFSv3
  • Nessun nconnect
  • Distribuisci i client su più IP del volume per i volumi di grande capacità
Spesso più elevato per set di dati statici di grandi dimensioni
NFSv4.1 Kerberos
  • Ottimizza max_session_slots
  • Non fare affidamento su nconnect per le prestazioni
  • sec=krb5, krb5i o krb5p
  • Non combinare con nconnect
Se necessario per le letture sequenziali
NFSv3 senza blocchi di avviso Impostazione predefinita del sistema operativo Se necessario

Misurare e convalidare l'ottimizzazione

Dopo aver aggiornato le impostazioni del client, completa i seguenti passaggi:

  • Esegui nfsiostat, mountstats e nfsstat sul client. Per saperne di più, consulta Monitorare le prestazioni.

  • Confronta i risultati con i benchmark delle prestazioni. Questi benchmark hanno utilizzato nconnect=16, rsize=65536 e wsize=65536 per alcuni test NFSv3 su Red Hat Enterprise Linux 9.

L'ottimizzazione del client migliora l'efficienza dell'utilizzo del percorso di rete al volume per una macchina virtuale (VM). La capacità del volume, il livello di servizio, i limiti del pool di archiviazione e le dimensioni della VM Compute Engine potrebbero comunque limitare i risultati.

Passaggi successivi