Hinweise zur Leistung

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:

  1. Ermitteln Sie den Knoten, auf dem Ihre Arbeitslast geplant ist:

    kubectl get pod POD_NAME -o wide
    

    Ersetzen Sie POD_NAME durch den Namen Ihres Pods. Notieren Sie sich in der Befehlsausgabe den Namen in der Spalte NODE.

  2. 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.

  3. Analysieren Sie in der Ausgabe die Bitraten in der Spalte Outgoing für eth0 und eth1. 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 GByte
    
  4. Beenden 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.

  1. Installieren Sie fio:

    Rocky 8

    sudo dnf install fio -y
    

    Ubuntu 20.04 und 22.04

    sudo apt update
    sudo install fio
    
  2. Fü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.