Auf dieser Seite finden Sie eine Anleitung zum Konfigurieren Ihrer Google Cloud Managed Lustre-Umgebung, um die bestmögliche Leistung zu erzielen.
Leistungsspezifikationen
Die folgenden Leistungswerte sind ungefähre Höchstwerte.
IOPS
Die maximalen IOPS skalieren linear pro TiB der bereitgestellten Instanzkapazität.
| Durchsatzstufe | Lese-IOPS (pro TiB) | Schreib-IOPS (pro TiB) |
|---|---|---|
125 MBps per TiB |
725 | 700 |
250 MBps per TiB |
1.450 | 1.400 |
500 MBps per TiB |
2.900 | 2.800 |
1000 MBps per TiB |
5.800 | 5.600 |
Metadatenvorgänge
Die maximale Anzahl von Metadatenvorgängen steigt in Schritten pro 72 Gbit/s des bereitgestellten Durchsatzes.
| Dateistatistiken | Dateierstellungen | Dateilöschungen | |
|---|---|---|---|
| Pro 72 Gbit/s | 410.000 pro Sekunde | 115.000 pro Sekunde | 95.000 pro Sekunde |
Leistung nach Erhöhung der Kapazität
Durch Erhöhen der Speicherkapazität einer vorhandenen Instanz werden der maximale Durchsatz und die IOPS erhöht, möglicherweise auch die Metadatenleistung.
Die Leistung des Lesedurchsatzes verbessert sich allmählich, wenn neue Daten geschrieben und auf den zusätzlichen Speicher verteilt werden. Die Leistung des Schreibdurchsatzes steigt sofort.
Maximale Übertragungseinheit (MTU) des VPC-Netzwerk
Wenn Sie beim Erstellen Ihres VPC-Netzwerk den Wert von mtu
(maximale Übertragungseinheit oder die Größe des größten IP-Pakets, das in diesem Netzwerk übertragen werden kann) auf den maximal zulässigen Wert von 8896 festlegen, verbessert sich die Leistung im Vergleich zum Standardwert von 1460 Byte um bis zu 10 %.
Mit dem folgenden Befehl können Sie den aktuellen MTU-Wert Ihres Netzwerks abrufen:
gcloud compute networks describe NETWORK_NAME --format="value(mtu)"
Der MTU-Wert eines Netzwerks kann nach der Erstellung des Netzwerks aktualisiert werden. Dabei sind jedoch wichtige Aspekte zu berücksichtigen. Weitere Informationen finden Sie unter MTU eines Netzwerks ändern für Details.
Compute Engine-Maschinentypen
Der Netzwerkdurchsatz kann von der Wahl des Maschinentyps beeinflusst werden. Im Allgemeinen gilt für den besten Durchsatz:
- Erhöhen Sie die Anzahl der vCPUs. Die maximale Bandbreite für ausgehenden Traffic pro Instanz beträgt in der Regel 2 Gbit/s pro vCPU, bis zum Maximum des Maschinentyps.
- Wählen Sie eine Maschinenserie aus, die höhere Grenzwerte für eingehenden und ausgehenden Traffic unterstützt. C2-Instanzen mit Tier_1-Netzwerken unterstützen beispielsweise eine Bandbreite für ausgehenden Traffic von bis zu 100 Gbit/s. C3-Instanzen mit Tier_1-Netzwerken unterstützen bis zu 200 Gbit/s.
- Aktivieren Sie die Tier_1-Netzwerkleistung pro VM mit größeren Maschinentypen.
- Verwenden Sie Google Virtual NIC (gVNIC). gVNIC ist die einzige Option für Maschinentypen der 3. Generation und höher. gVNIC ist erforderlich, wenn Sie Tier_1-Netzwerke verwenden.
Weitere Informationen finden Sie unter Netzwerkbandbreite.
Multi-NIC-Konfiguration
Mit der integrierten Multi-Rail-Funktion von Lustre können Clients den Netzwerk-Traffic auf mehrere Netzwerkschnittstellenkarten (Multi-NIC) verteilen. Dadurch wird die Bandbreite aggregiert, um Managed Lustre-Instanzen mit hoher Kapazität zu sättigen.
So konfigurieren Sie Multi-NIC:
- Wählen Sie einen Maschinentyp mit mehreren physischen NICs aus.
- Erstellen Sie ein Subnetz für jede NIC und weisen Sie jede NIC ihrem Subnetz zu.
- Folgen Sie den Schritten für Multi-NIC, wenn Sie eine Verbindung von Compute Engine oder GKE herstellen.
Traffic-Balancing prüfen
Nachdem Sie Multi-NIC konfiguriert haben, prüfen Sie, ob das Data-Balancing korrekt funktioniert.
Compute Engine
Prüfen Sie das Data-Balancing direkt auf der VM, indem Sie die konfigurierten Netzwerkschnittstellen (z. B. eth0 und eth1) mit nload überwachen, während Sie Traffic an das Managed Lustre-Back-End senden:
nload -m eth0 eth1
Bei einer erfolgreichen Multi-NIC-Konfiguration sollten die Bitraten für ausgehenden Traffic über alle konfigurierten Schnittstellen hinweg ungefähr gleich sein.
GKE
Prüfen Sie, ob der Netzwerk-Traffic von Ihrer Arbeitslast auf mehrere NICs verteilt wird, indem Sie einen temporären Netzwerk-Debugger-Pod auf dem Knoten bereitstellen, auf dem Ihre Arbeitslast geplant ist:
Ermitteln Sie den Knoten, auf dem Ihre Arbeitslast geplant ist:
kubectl get pod POD_NAME -o wideErsetzen Sie POD_NAME durch den Namen Ihres Pods. Notieren Sie sich in der Befehlsausgabe den Namen in der Spalte
NODE.Starten Sie den Netzwerk-Debugger auf diesem Knoten:
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"Ersetzen Sie NODE_NAME durch den Knotennamen aus dem vorherigen Schritt.
Analysieren Sie in der Ausgabe die Bitraten in der Spalte Outgoing für
eth0undeth1. Wenn die Konfiguration erfolgreich ist, sind die Bitraten ungefähr gleich. Die Ausgabe sieht etwa so aus: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 GByteBeenden Sie den Debugger mit Strg + C.
Leistung einzelner Clients messen
Verwenden Sie zum Testen der Lese- und Schreibleistung von einem einzelnen Compute Engine-Client
das fio (Flexible I/O tester) Befehlszeilentool.
Installieren Sie fio:
Rocky 8
sudo dnf install fio -yUbuntu 20.04 und 22.04
sudo apt update sudo install fioFühren Sie dazu diesen Befehl aus:
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
Der Test dauert etwa 5 Minuten. Nach Abschluss werden die Ergebnisse angezeigt. Je nach Konfiguration können Sie einen Durchsatz von bis zu Ihrer VM's maximalen Netzwerkgeschwindigkeit und Tausende von IOPS pro TiB erwarten.