Hinweise zur Leistung

Auf dieser Seite finden Sie Anleitungen zum Konfigurieren Ihrer Google Cloud Managed Lustre-Umgebung, um die beste Leistung zu erzielen.

Leistungszahlen für die einzelnen Leistungsstufen finden Sie unter Leistungsstufen.

Leistung nach Erhöhung der Kapazität

Durch Erhöhen der Speicherkapazität einer vorhandenen Instanz werden der maximale Durchsatz und die IOPS sowie möglicherweise die Metadatenleistung erhöht.

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 Größe des größten IP-Pakets, das in diesem Netzwerk übertragen werden kann) auf den maximal zulässigen Wert von 8.896 festlegen, wird die Leistung im Vergleich zum Standardwert von 1.460 Byte um bis zu 10% verbessert.

Sie können den aktuellen MTU-Wert Ihres Netzwerks mit dem folgenden Befehl aufrufen:

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.

Compute Engine-Maschinentypen

Der Netzwerkdurchsatz kann durch die Wahl des Maschinentyps beeinflusst werden. Im Allgemeinen gilt für den besten Durchsatz:

  • Die Anzahl der vCPUs erhöhen Die maximale Bandbreite für ausgehenden Traffic beträgt in der Regel 2 Gbit/s pro vCPU, bis zum Maximum des Maschinentyps.
  • Wählen Sie eine Maschinenreihe aus, die höhere Limits für eingehenden und ausgehenden Traffic unterstützt. C2-Instanzen mit Tier_1-Netzwerk 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.

Ausführliche Informationen finden Sie unter Netzwerkbandbreite.

Konfiguration für mehrere NICs

Mit der integrierten Multi-Rail-Funktion von Lustre können Clients Netzwerkverkehr über mehrere Netzwerkschnittstellenkarten (Multi-NIC) verteilen. Dadurch wird die Bandbreite aggregiert, um Managed Lustre-Instanzen mit hoher Kapazität zu sättigen.

So konfigurieren Sie mehrere NICs:

  • Wählen Sie einen Maschinentyp mit mehreren physischen NICs aus.
  • Erstellen Sie für jede NIC ein Subnetz und weisen Sie jede NIC ihrem Subnetz zu.
  • Folgen Sie der Anleitung für mehrere NICs, wenn Sie eine Verbindung von Compute Engine oder GKE aus herstellen.

Traffic-Ausgleich prüfen

Nachdem Sie mehrere NICs konfiguriert haben, sollten Sie prüfen, ob die Daten richtig verteilt werden.

Compute Engine

Prüfen Sie den Datenausgleich direkt auf der VM, indem Sie die konfigurierten Netzwerkschnittstellen (z. B. eth0 und eth1) mit nload überwachen, während Sie Traffic für das Managed Lustre-Backend generieren:

nload -m eth0 eth1

Bei einer erfolgreichen Konfiguration mit mehreren NICs sollten die ausgehenden Bitraten für alle konfigurierten Schnittstellen ungefähr gleich sein.

GKE

Prüfen Sie, ob der Netzwerkverkehr Ihrer Arbeitslast auf mehrere NICs verteilt ist, 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 Clusters. 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 der Spalte Outgoing für eth0 und eth1. Wenn die Konfiguration erfolgreich ist, sind die Bitraten in etwa 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 durch Drücken von Strg+C.

Leistung einzelner Clients messen

Verwenden Sie zum Testen der Lese- und Schreibleistung von einem einzelnen Compute Engine-Client das Befehlszeilentool fio (Flexible I/O Tester).

  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. Wenn der Vorgang abgeschlossen ist, werden die Ergebnisse angezeigt. Je nach Konfiguration können Sie einen Durchsatz von bis zu der maximalen Netzwerkgeschwindigkeit Ihrer VM und Tausende von IOPS pro TiB erwarten.