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 Parametersunrpc.max_tcp_slot_table_entries
festzulegen, fügen Sie ihn Ihrer/etc/sysctl.conf
-Datei hinzu und laden Sie die Parameterdatei mit dem Befehlsysctl -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-Betriebssystem6 TiB-Arbeitsgruppe
Die Verwendung eines
nconnect
-Werts von 16 führte zu einer fünfmal höheren Leistung als ohne Aktivierung.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-Betriebssystem6 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 Parameteriodepth
wurde bei jeder Ausführung um fünf erhöht, bis der maximale Durchsatz erreicht war.
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
odersmb-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