Questa pagina fornisce indicazioni sulla configurazione dell'ambiente Google Cloud Managed Lustre per ottenere le migliori prestazioni.
Per visualizzare i numeri di prestazioni specifici per ogni livello di prestazioni, consulta Livelli di prestazioni.
Prestazioni dopo l'aumento della capacità
L'aumento della capacità di archiviazione di un'istanza esistente aumenta il throughput e le IOPS massimi e, possibilmente, le prestazioni dei metadati.
Le prestazioni del throughput di lettura migliorano gradualmente man mano che i nuovi dati vengono scritti e ridistribuiti nello spazio di archiviazione aggiuntivo. Le prestazioni del throughput di scrittura aumentano immediatamente.
Unità massima di trasmissione (MTU) della rete VPC
Quando crei la rete VPC, l'impostazione del 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 i dettagli, consultaModificare l'MTU di una rete.
Tipi di macchine Compute Engine
Il throughput di rete può essere influenzato dalla scelta del tipo di macchina. In generale, per ottenere il miglior throughput:
- 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 supporta 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 rete 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 macchine di terza generazione e successivi. gVNIC è obbligatorio quando si utilizza la rete Tier_1.
Per informazioni dettagliate, consulta Larghezza di banda della rete.
Configurazione multi-NIC
Utilizzando la funzionalità multi-rail integrata di Lustre, i client possono suddividere il traffico di rete su più schede di interfaccia di rete (multi-NIC). In questo modo, la larghezza di banda viene aggregata per saturare le istanze Managed Lustre ad alta capacità.
Per configurare multi-NIC, devi:
- Selezionare un tipo di macchina con più NIC fisiche.
- Creare una subnet per ogni NIC e assegnare ogni NIC alla relativa subnet.
- Seguire i passaggi multi-NIC quando ti connetti da Compute Engine o GKE.
Verificare il bilanciamento del traffico
Dopo aver configurato multi-NIC, verifica che i dati siano bilanciati correttamente.
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 del traffico verso il backend Managed Lustre:
nload -m eth0 eth1
In una configurazione multi-NIC riuscita, i bit rate in uscita dovrebbero essere approssimativamente 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 di debug di rete temporaneo sul nodo in cui è pianificato il carico di lavoro:
Identifica il nodo in cui è pianificato il carico di lavoro:
kubectl get pod POD_NAME -o wideSostituisci POD_NAME con il nome del tuo pod. Nell'output comando, prendi nota del nome nella colonna
NODE.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.
Nell'output, analizza i bit rate della colonna Outgoing per
eth0eeth1. Se la configurazione è riuscita, i bit rate sono approssimativamente 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 GByteEsci dal debugger premendo Ctrl+C.
Misurare le prestazioni di un singolo client
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).
Installa fio:
Rocky 8
sudo dnf install fio -yUbuntu 20.04 e 22.04
sudo apt update sudo install fioEsegui 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 completamento del test richiede circa 5 minuti. Al termine, vengono visualizzati i risultati. A seconda della configurazione, puoi prevedere un throughput fino a alla velocità di rete massima della VM e migliaia di IOPS per TiB.