Leistung optimieren

Auf dieser Seite finden Sie Informationen dazu, wie Sie die Leistung von Google Cloud NetApp Volumes optimieren können.

Hinweise

Bevor Sie Änderungen an Ihren Volumes vornehmen, um die Leistung zu optimieren, sollten Sie die Leistungsaspekte lesen.

Lautstärkeeinstellungen anpassen

Sie können die Leistung optimieren, indem Sie die folgenden Lautstärkeeinstellungen anpassen:

  • Volume-Kapazität erhöhen: Sie können die Kapazität Ihres Volumes mit dem Service-Level „Premium“, „Extrem“ oder „Standard“ erhöhen, um den maximal erreichbaren Volume-Durchsatz zu verbessern. Erhöhen Sie für Volumes mit dem Service-Level „Flex“ stattdessen die Kapazität des Speicherpools.

  • Servicelevel aktualisieren: Sie können das Volumen Ihres Premium-Servicelevels auf das Extreme-Servicelevel aktualisieren, um den Durchsatz zu verbessern. Wir empfehlen, das Volume einem anderen Speicherpool mit einem anderen Serviceniveau zuzuweisen.

  • Manuelle QoS-Pools verwenden, um einen höheren Durchsatz zuzuweisen: Sie können den zugewiesenen Durchsatz von größeren Volumes mit geringen Durchsatzanforderungen verringern und den Durchsatz von kleineren Volumes, die eine höhere Leistung benötigen, bis zum verfügbaren Pooldurchsatz erhöhen.

Das Erhöhen der Volume-Kapazität und das Aktualisieren der Service-Levels haben keine Auswirkungen auf die E/A-Arbeitslasten, die auf dem Volume ausgeführt werden, und beeinträchtigen den Zugriff auf das Volume in keiner Weise.

Client anpassen

Sie können die Leistung verbessern, indem Sie die folgenden Einstellungen auf dem Client anpassen:

  • Clients am selben Standort platzieren: Die Latenzergebnisse werden direkt von den Funktionen und dem Standort des Clients beeinflusst. Die besten Ergebnisse erzielen Sie, wenn Sie den Client in derselben Region wie das Volume oder so nah wie möglich platzieren. Testen Sie die Auswirkungen der Zone, indem Sie die Latenz von einem Client in jeder Zone testen und die Zone mit der niedrigsten Latenz verwenden.

  • Compute Engine-Netzwerkbandbreite konfigurieren: Die Netzwerkfunktionen von virtuellen Compute Engine-Maschinen hängen vom verwendeten Instanztyp ab. In der Regel können größere Instanzen einen höheren Netzwerkdurchsatz erzielen. Wir empfehlen, eine Client-VM mit einer geeigneten Netzwerkbandbreite auszuwählen, die Netzwerkschnittstelle Google Virtual NIC (gVNIC) auszuwählen und die Tier_1-Leistung zu aktivieren. Weitere Informationen finden Sie in der Compute Engine-Dokumentation unter Netzwerkbandbreite.

  • Mehrere TCP-Sitzungen öffnen: Wenn Ihre Anwendung einen hohen Durchsatz erfordert, kann die einzelne TCP-Sitzung (Transmission Control Protocol) einer normalen NFS- und SMB-Sitzung irgendwann gesättigt sein. Erhöhen Sie in solchen Fällen die Anzahl der TCP-Sitzungen, die von Ihrer NFS- und SMB-Verbindung verwendet werden.

    Verwenden Sie einen der folgenden Tabs, um Ihren Client je nach Clienttyp anzupassen:

    Linux

    Normalerweise verwendet ein NFS-Client eine einzelne TCP-Sitzung für alle NFS-bereitgestellten Dateisysteme, die einen Speicherendpunkt gemeinsam nutzen. Mit der Bereitstellungsoption nconnect können Sie die Anzahl der unterstützten TCP-Sitzungen auf maximal 16 erhöhen.

    Wir empfehlen die folgenden Best Practices zum Anpassen des Linux-Clienttyps, damit Sie nconnect optimal nutzen können:

    • Anzahl der TCP-Sitzungen mit nconnect erhöhen: Jede zusätzliche TCP-Sitzung fügt eine Warteschlange für 128 ausstehende Anfragen hinzu, wodurch die potenzielle Nebenläufigkeit verbessert wird.

    • Parameter sunrpc.max_tcp_slot_table_entries festlegen: sunrpc.max_tcp_slot_table_entries ist ein Anpassungsparameter auf Verbindungsebene, den Sie ändern können, um die Leistung zu steuern. Wir empfehlen, sunrpc.max_tpc_slot_table_enteries auf 128 Anfragen pro Verbindung festzulegen und 10.000 Slots für alle NFS-Clients in einem einzelnen Projekt, die eine Verbindung zu NetApp-Volumes herstellen, nicht zu überschreiten. Um den Parameter sunrpc.max_tcp_slot_table_entries festzulegen, fügen Sie ihn Ihrer /etc/sysctl.conf-Datei hinzu und laden Sie die Parameterdatei mit dem Befehl sysctl -p neu.

    • Maximal unterstützten Wert pro Sitzung auf 180 festlegen: Im Gegensatz zu NFSv3 definieren NFSv4.1-Clients die Beziehung zwischen Client und Server in Sitzungen. Während NetApp Volumes mit NFSv3 bis zu 128 ausstehende Anfragen pro Verbindung unterstützt, ist NFSv4.1 auf 180 ausstehende Anfragen pro Sitzung beschränkt. Bei Linux-NFSv4.1-Clients wird standardmäßig 64 max_session_slots pro Sitzung verwendet. Sie können diesen Wert jedoch nach Bedarf anpassen. Wir empfehlen, den maximal unterstützten Wert pro Sitzung auf 180 zu ändern.

      Um max_session_slots zu optimieren, erstellen Sie eine Konfigurationsdatei unter /etc/modprobe.d. Achten Sie darauf, dass keine Anführungszeichen („ “) inline angezeigt werden. Andernfalls wird die Option nicht angewendet.

      $ echo "options nfs max_session_slots=180" > /etc/modprobe/d/nfsclient/conf
      $ reboot
      
      Use the systool -v -m nfs command to see the current maximum in use
      by the client. For the command to work, at least one NFSv4.1 mount
      must be in place.
      
      $ systool -v -v nfs
      {
      Module = "nfs"
      
      Parameters:
      
      Max_session_slots = "63" <-
      
      }
      

    Das folgende Vergleichsdiagramm für NFS nconnect veranschaulicht die Auswirkungen der Verwendung der nconnect-Konfiguration auf eine NFS-Arbeitslast. Diese Informationen wurden mit Fio und den folgenden Einstellungen erfasst:

    • Arbeitslast mit 100% Lesevorgängen

    • 8 KiB-Blockgröße für ein einzelnes Volume

    • n2-standard-32 VM mit Red Hat 9-Betriebssystem

    • 6 TiB-Arbeitsgruppe

    Die Verwendung eines nconnect-Werts von 16 führte zu einer fünfmal höheren Leistung als ohne Aktivierung.

    Vergleich von NFS-nconnect mit einer einzelnen virtuellen Red Hat 9-Maschine mit einer Blockgröße von 8 KiB.

    Windows

    Bei Windows-basierten Clients kann der Client SMB Multichannel mit Receive Side Scaling (RSS) verwenden, um mehrere TCP-Verbindungen zu öffnen. Damit diese Konfiguration möglich ist, muss Ihrer VM ein Netzwerkadapter zugewiesen sein, der RSS unterstützt. Wir empfehlen, RSS auf vier oder acht Werte zu setzen. Jeder Wert über eins sollte jedoch den Durchsatz erhöhen.

    Das folgende Diagramm zeigt den Unterschied, den die RSS-Konfiguration für eine SMB-Arbeitslast haben kann. Diese Informationen wurden mit Fio und den folgenden Einstellungen erfasst:

    • Arbeitslast mit 100% Lesevorgängen

    • 8 KiB-Blockgröße für ein einzelnes Volume

    • Einzelne n2-standard-32-VM mit Windows 2022-Betriebssystem

    • 6 TiB-Arbeitsgruppe

    Acht Jobs wurden ausgeführt, wobei sich nur die SMB-Client-RSS-Option zwischen den Testläufen änderte. Die Verwendung von RSS-Werten von 4, 8 und 16 führte zu einer doppelten Leistungssteigerung im Vergleich zur Verwendung des Werts 1. Jede RSS-Instanz wurde neunmal mit einem numjobs-Parameter von 8 ausgeführt. Der Parameter iodepth wurde bei jeder Ausführung um fünf erhöht, bis der maximale Durchsatz erreicht war.

    SMB-RSS-Vergleich einer einzelnen Windows 2022-VM mit einer Blockgröße von 8 KiB

Manuelle QoS

Mit der manuellen Dienstqualität (QoS) in NetApp Volumes können Sie die Leistung von Volumes an die Anforderungen von Arbeitslasten anpassen und die Speicherkosten kontrollieren.

Die manuelle QoS-Konfiguration bietet folgende Vorteile:

  • Kostenoptimierung: Skalieren Sie die Volume-Leistung innerhalb der Kapazität Ihres Speicherpools, um die Cloud-Kosten zu optimieren.

  • Sofortige Anpassung des Durchsatzes: Sie können den Durchsatz des Volumens ohne Ausfallzeiten anpassen.

  • Reduzierung der Kosten für die Notfallwiederherstellung: Senken Sie die QoS für replizierte Volumes, um die Kosten für die Notfallwiederherstellung für Zielpools zu senken.

  • Bessere Leistung für Klone oder Caches: Die Leistung von Klon- oder Cache-Volumes mit kleinen zugewiesenen Größen wird gesteigert.

  • Flexible Arbeitslastverwaltung: Verwenden Sie größere Speicherpools als Container für mehrere Arbeitslasten und passen Sie den Durchsatz jedes Volumes nach Bedarf an.

Hinweise

  • Sie können die manuelle QoS mit der Google Cloud CLI, der NetApp Volumes API oder Terraform verwalten. Die Google Cloud Konsole wird nicht unterstützt.

  • Die manuelle QoS wird für die Service-Levels „Standard“, „Premium“ und „Extreme“ unterstützt, nicht aber für das Service-Level „Flex“.

Manuelle QoS-Limits einrichten

Für Volumes in einem Speicherpool mit manueller QoS können Sie Durchsatz und Kapazität unabhängig voneinander festlegen. Der Gesamtdurchsatz aller Volumes in einem Pool mit manueller QoS wird durch den Gesamtdurchsatz des Pools begrenzt. Der Durchsatz des Pools wird durch seine zugewiesene Kapazität und sein Service-Level bestimmt. Ein 40 TiB großer Premium-Pool kann beispielsweise einen maximalen Durchsatz von 2.560 MiB/s bei 64 MiB/s pro TiB erreichen, während ein 200 TiB großer Extreme-Pool Volumes mit einem kombinierten Durchsatz von 25.600 MiB/s unterstützen kann.

Nachdem der manuelle QoS-Pool eingerichtet wurde, können Sie das erforderliche Durchsatzlimit für jedes Volume darin festlegen. Das maximale Durchsatzlimit für ein einzelnes Volume beträgt 4, 5 GiBps oder 30 GiBps für Volumes mit hoher Kapazität.

Mit den Pool- und Volumenbefehlen oder APIs können Sie die verfügbaren und zugewiesenen Durchsatzwerte für den Pool aufrufen, um den Gesamtdurchsatz zu verwalten. Informationen zum Erstellen eines manuellen QoS-Pools und zum Definieren des Volume-Durchsatzes finden Sie unter Storage-Pool erstellen und Volume erstellen.

Speicherpool erstellen

gcloud

So erstellen Sie einen Speicherpool mit manueller QoS:

    gcloud netapp storage-pools create POOL_NAME \
       --project=PROJECT_ID \
       --location=LOCATION \
       --capacity=CAPACITY \
       --service-level=SERVICE_LEVEL \
       --qos-type=QOS_TYPE \
       --network=name=NETWORK_NAME

Ersetzen Sie die folgenden Informationen:

  • POOL_NAME: Der Name des Pools, den Sie erstellen möchten. Der Poolname muss pro Standort eindeutig sein.

  • PROJECT_ID: der Name des Projekts, in dem Sie den Speicherpool erstellen möchten.

  • LOCATION: Der Standort des Pools, den Sie erstellen möchten.

  • CAPACITY: die Kapazität des Pools in GiB.

  • SERVICE_LEVEL: Das Serviceniveau für Ihren Speicherpool: „Standard“, „Premium“ oder „Extreme“.

  • QOS_TYPE: Der QoS-Typ Ihres Speicherpools: „auto“ oder „manual“.

  • NETWORK_NAME: der Name der VPC.

Speicherpool bearbeiten

gcloud

So bearbeiten Sie einen vorhandenen Speicherpool mit automatischer QoS, um manuelle QoS zu verwenden:

    gcloud netapp storage-pools update POOL_NAME \
       --project=PROJECT_ID \
       --location=LOCATION \
       --qos-type=QOS_TYPE

Ersetzen Sie die folgenden Informationen:

  • POOL_NAME: der Name des Pools, den Sie aktualisieren möchten.

  • PROJECT_ID: der Name des Projekts.

  • LOCATION: Der Standort des Pools.

  • QOS_TYPE: der aktualisierte QoS-Typ für Ihren Speicherpool. Es wird nur die manuelle Konfiguration unterstützt.

Volume erstellen

gcloud

Erstellen Sie mit dem folgenden Befehl ein Volume mit einem angegebenen manuellen QoS-Durchsatzlimit:

gcloud netapp volumes create VOLUME_NAME \
  --project=PROJECT_ID \
  --location=LOCATION \
  --storage-pool=STORAGE_POOL \
  --capacity=CAPACITY \
  --protocols=PROTOCOLS \
  --share-name=SHARE_NAME \
  --throughput-mibps=THROUGHPUT_MIBPS

Ersetzen Sie die folgenden Informationen:

  • VOLUME_NAME ist der Name des Volumes. Dieser Name muss pro Standort eindeutig sein.

  • PROJECT_ID: Der Name des Projekts, in dem das Volume erstellt werden soll.

  • LOCATION: Der Speicherort für das Volume.

  • STORAGE_POOL: der Speicherpool, in dem das Volume erstellt werden soll.

  • CAPACITY: die Kapazität des Volumes. Sie definiert die Kapazität, die NAS-Clients sehen.

  • PROTOCOLS: Wählen Sie die NAS-Protokolle aus, mit denen das Volume exportiert wird. Gültige Optionen sind NFSv3, NFSv4, SMB und die folgenden Kombinationen:

    • nfsv3,nfsv4
    • nfsv3,smb
    • nfsv4,smb

    Je nach ausgewähltem Protokolltyp empfehlen wir, die protokollspezifischen Parameter wie export-policy oder smb-settings hinzuzufügen.

  • SHARE_NAME: Der NFS-Exportpfad oder SMB-Freigabename des Volumes.

  • THROUGHPUT_MIBPS: das Durchsatzlimit des Volumes in MiB/s.

Weitere Informationen zu zusätzlichen optionalen Flags finden Sie in der Google Cloud SDK-Dokumentation zum Erstellen von Volumes.

Nächste Schritte

Weitere Informationen zu Speicherpools