Considerazioni sulle prestazioni

Questa pagina fornisce indicazioni sulla configurazione dell'ambiente Google Cloud Managed Lustre per ottenere le migliori prestazioni.

Per visualizzare i numeri di rendimento specifici per ogni livello di rendimento, consulta Livelli di rendimento.

Rendimento dopo l'aumento della capacità

L'aumento della capacità di archiviazione di un'istanza esistente ne aumenta il throughput e le IOPS massimi e, possibilmente, le prestazioni dei metadati.

Le prestazioni di throughput di lettura migliorano gradualmente man mano che vengono scritti nuovi dati e ridistribuiti nello spazio di archiviazione aggiuntivo. Le prestazioni di velocità effettiva di scrittura aumentano immediatamente.

Unità massima di trasmissione (MTU) della rete VPC

Quando crei la rete VPC, impostare il valore di mtu (unità massima di trasmissione o la dimensione del pacchetto IP più grande che può essere trasmesso su questa rete) sul valore massimo consentito di 8896 migliora le prestazioni fino al 10% rispetto al valore predefinito di 1460 byte.

Puoi visualizzare il valore MTU corrente della tua rete con il seguente comando:

gcloud compute networks describe NETWORK_NAME --format="value(mtu)"

Il valore MTU di una rete può essere aggiornato dopo la creazione della rete, ma ci sono considerazioni importanti. Per maggiori dettagli, consulta Modificare la MTU di una rete.

Tipi di macchine Compute Engine

La velocità effettiva di rete può essere influenzata dalla scelta del tipo di macchina. In generale, per ottenere la migliore velocità effettiva:

  • Aumenta il numero di vCPU. La larghezza di banda in uscita massima per istanza è generalmente di 2 Gbps per vCPU, fino al massimo del tipo di macchina.
  • Seleziona una serie di macchine che supporti limiti di ingresso e uscita più elevati. Ad esempio, le istanze C2 con rete Tier_1 supportano una larghezza di banda in uscita fino a 100 Gbps. Le istanze C3 con networking Tier_1 supportano fino a 200 Gbps.
  • Attiva le prestazioni di rete Tier_1 per VM con tipi di macchine più grandi.
  • Utilizza Google Virtual NIC (gVNIC). gVNIC è l'unica opzione per i tipi di macchina di terza generazione e successivi. gVNIC è obbligatorio quando si utilizza il networking Tier_1.

Per informazioni dettagliate, consulta la sezione Larghezza di banda di rete.

Configurazione di più NIC

Utilizzando la funzionalità multi-rail integrata di Lustre, i client possono distribuire il traffico di rete su più schede di interfaccia di rete (multi-NIC). Aggrega la larghezza di banda per saturare le istanze Managed Lustre ad alta capacità.

Per configurare più NIC, devi:

  • Seleziona un tipo di macchina con più NIC fisiche.
  • Crea una subnet per ogni NIC e assegna ogni NIC alla relativa subnet.
  • Segui i passaggi per più NIC quando ti connetti da Compute Engine o GKE.

Verifica il bilanciamento del traffico

Una volta configurata la multi-NIC, verifica che il bilanciamento dei dati sia corretto.

Compute Engine

Verifica il bilanciamento dei dati direttamente sulla VM monitorando le interfacce di rete configurate (ad esempio eth0 e eth1) utilizzando nload durante la generazione di traffico verso il backend Managed Lustre:

nload -m eth0 eth1

In una configurazione multi-NIC riuscita, i bit rate in uscita devono essere più o meno equivalenti su tutte le interfacce configurate.

GKE

Verifica che il traffico di rete del tuo carico di lavoro sia bilanciato su più NIC eseguendo il deployment di un pod network-debugger temporaneo sul nodo in cui è pianificato il tuo carico di lavoro:

  1. Identifica il nodo in cui è pianificato il workload:

    kubectl get pod POD_NAME -o wide
    

    Sostituisci POD_NAME con il nome del tuo pod. Nell'output comando, prendi nota del nome nella colonna NODE.

  2. Avvia il debugger di rete su quel nodo:

    kubectl run multi-nic-debug --rm -i --tty --image=nicolaka/netshoot \
      --overrides='{"spec": {"hostNetwork": true, "nodeSelector": {"kubernetes.io/hostname": "NODE_NAME"}, "tolerations": [{"key": "nvidia.com/gpu", "operator": "Exists", "effect": "NoSchedule"}]}}' \
      -- /bin/bash -c "apk update && apk add nload && nload -m eth0 eth1"
    

    Sostituisci NODE_NAME con il nome del nodo del passaggio precedente.

  3. Nell'output, analizza i bit rate della colonna In uscita per eth0 e eth1. Se la configurazione va a buon fine, i bit rate sono più o meno equivalenti. L'output è simile al seguente:

    Device eth0 [10.1.0.50] (1/2):
    ==========================================================================
    Incoming:                               Outgoing:
    Curr: 1.63 MBit/s                       Curr: 1.46 GBit/s
    Avg: 1.60 MBit/s                        Avg: 1.44 GBit/s
    Min: 1.40 MBit/s                        Min: 1.25 GBit/s
    Max: 1.64 MBit/s                        Max: 1.47 GBit/s
    Ttl: 590.94 GByte                       Ttl: 405.19 GByte
    
    Device eth1 [172.16.15.5] (2/2):
    ==========================================================================
    Incoming:                               Outgoing:
    Curr: 1.64 MBit/s                       Curr: 1.47 GBit/s
    Avg: 1.62 MBit/s                        Avg: 1.44 GBit/s
    Min: 1.42 MBit/s                        Min: 1.26 GBit/s
    Max: 1.66 MBit/s                        Max: 1.47 GBit/s
    Ttl: 587.68 GByte                       Ttl: 406.36 GByte
    
  4. Esci dal debugger premendo Ctrl+C.

Misurare il rendimento di un singolo cliente

Per testare le prestazioni di lettura e scrittura da un singolo client Compute Engine, utilizza lo strumento a riga di comando fio (Flexible I/O tester).

  1. Installa fio:

    Rocky 8

    sudo dnf install fio -y
    

    Ubuntu 20.04 e 22.04

    sudo apt update
    sudo install fio
    
  2. Esegui questo comando:

    fio --ioengine=libaio --filesize=32G --ramp_time=2s \
    --runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \
    --group_reporting --directory=/lustre --buffer_compress_percentage=50 \
    --name=read --blocksize=1m --iodepth=64 --readwrite=read
    

Il test richiede circa 5 minuti. Al termine, vengono visualizzati i risultati. A seconda della configurazione, puoi prevedere un throughput fino alla velocità di rete massima della VM e migliaia di IOPS per TiB.