Instanzleistung optimieren und testen

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Auf dieser Seite werden die erwartete durchschnittliche Leistung und die empfohlenen Leistungseinstellungen für Filestore beschrieben. Außerdem erfahren Sie, wie Sie die Leistung Ihrer Filestore-Instanzen testen können.

Erwartete Leistung

Jede Filestore-Dienststufe bietet eine andere Leistungsebene. Die Leistung einer bestimmten Instanz kann aufgrund verschiedener Faktoren von der erwarteten Anzahl abweichen. Zu diesen Faktoren zählen Caching, die Anzahl der Client-VMs, der Maschinentyp der Client-VMs und die getestete Arbeitslast.

In den folgenden Tabellen wird die erwartete Leistung von Filestore-Instanzen basierend auf der Dienststufe und der konfigurierten Kapazität angezeigt:

Leistung Kapazität (TiB) Lese-/Schreib-IOPS Lese-/Schreibdurchsatz (MiB/s)
BASIC_HDD 1–10 600/1,000 100/100
BASIC_HDD 10–63,9 1.000/5.000 180/120
BASIC_SSD 2,5–63,9 60,000/25,000 1,200/350
HIGH_SCALE_SSD 10 92.000/26.000 2.600/880
HIGH_SCALE_SSD 100 920.000/260.000 26.000/8.800
ENTERPRISE 1 12.000/4.000 120/100
ENTERPRISE 10 120.000/40.000 1.200/1.000

Die Tabelle oben zeigt die erwartete Leistung bei maximaler und minimaler Kapazität von High Scale und Enterprise. Innerhalb dieser Limits steigt die Leistung entsprechend der Kapazitätsskalierung. Wenn Sie beispielsweise die Kapazität Ihrer Enterprise-Instanz von 1 TiB auf 2 TiB verdoppeln, verdoppelt sich die erwartete Leistung der Instanz von 12.000/4.000 IOPS auf 24.000/8.000 IOPS.

In Szenarien mit einem oder wenigen Clients müssen Sie die Anzahl der TCP-Verbindungen mit der Bereitstellungsoption nconnect erhöhen, um die maximale NFS-Leistung zu erzielen. Wir empfehlen, bis zu 7 Verbindungen für die High Scale-Stufe und bis zu 2 Verbindungen für die Enterprise-Stufe anzugeben. Im Allgemeinen gilt: Je größer die Dateifreigabekapazität und je weniger verbindende Client-VMs, desto mit mehr Leistung gewinnen Sie, wenn Sie zusätzliche Verbindungen mit nconnect angeben.

Empfohlener Client-Maschinentyp

Wir empfehlen einen Compute Engine-Maschinentyp wie n2-standard-8 mit einer Bandbreite für ausgehenden Traffic von 16 Gbps. Diese ausgehende Bandbreite ermöglicht es dem Client, ungefähr 16 Gbps-Lesebandbreite für cachefreundliche Arbeitslasten zu erreichen. Weitere Informationen finden Sie unter Netzwerkbandbreite.

Bereitstellungsoptionen für Linux-Clients

Wir empfehlen, die folgenden NFS-Bereitstellungsoptionen zu verwenden, insbesondere die hard-Bereitstellung, async, und die Optionen rsize und wsize auf 1 MiB einzustellen, um die beste Leistung auf Linux-Client-VM-Instanzen zu erreichen. Weitere Informationen zu NFS-Bereitstellungsoptionen finden Sie unter nfs.

Standardeinstellung Beschreibung
hard Der NFS-Client wiederholt NFS-Anforderungen auf unbestimmte Zeit.
timeo=600 Der NFS-Client wartet 600 Dezisekunden (60 Sekunden), bevor eine NFS-Anforderung wiederholt wird.
retrans=3 Der NFS-Client versucht dreimal, NFS-Anforderungen zu erfüllen, bevor weitere Wiederherstellungsmaßnahmen ergriffen werden.
rsize=1048576 Der NFS-Client kann pro READ-Anforderung maximal 1.048.576 Byte (1 MiB) vom NFS-Server empfangen.
wsize=1048576 Der NFS-Client kann pro WRITE-Anforderung maximal 1.048.576 Byte (1 MiB) vom NFS-Server empfangen.
resvport Der NFS-Client verwendet einen privilegierten Quellport, wenn er mit dem NFS-Server für diesen Bereitstellungspunkt kommuniziert.
async Der NFS-Client verzögert das Senden von Anwendungsschreibvorgängen an den NFS-Server, bis bestimmte Bedingungen erfüllt sind.
Achtung: Durch die Verwendung der Option sync wird die Leistung erheblich reduziert.

Leistung von Einzel- und Mehrfach-Client-VM

Die skalierbaren Dienststufen von Filestore sind leistungsoptimiert für mehrere Client-VMs, nicht für eine einzelne Client-VM.

Für Instanzen der Stufe Enterprise und High Scale sind mindestens vier Client-VMs erforderlich, um die volle Leistung zu nutzen. Dadurch wird sichergestellt, dass alle VMs im zugrunde liegenden Filestore-Cluster vollständig genutzt werden.

Der kleinste skalierbare Filestore-Cluster hat vier VMs mit zusätzlichem Kontext. Jede Client-VM kommuniziert nur mit einer Filestore-Cluster-VM, unabhängig von der Anzahl der NFS-Verbindungen pro Client, die mit der Bereitstellungsoption nconnect angegeben wird. Wenn Sie eine einzelne Client-VM verwenden, werden Lese- und Schreibvorgänge nur von einer einzelnen Filestore-Cluster-VM ausgeführt.

Leistung von Google Cloud-Ressourcen verbessern

Vorgänge über mehrere Google Cloud-Ressourcen hinweg, z. B. das Kopieren von Daten aus Cloud Storage in eine Filestore-Instanz mit gsutil, können langsam sein. Versuchen Sie Folgendes, um Leistungsprobleme zu minimieren:

  • Der Cloud Storage-Bucket, die Client-VM und die Filestore-Instanz müssen sich in derselben Region befinden.

    Dual-Regionen sind eine Option mit maximal Leistung für Daten, die in Cloud Storage gespeichert sind. Wenn Sie diese Option verwenden, müssen sich die anderen Ressourcen in einer der Regionen befinden, die die Dual-Region umfassen. Wenn sich Ihre Cloud Storage-Daten beispielsweise in us-central1,us-west1 befinden, müssen sich die Client-VM und die Filestore-Instanz in us-central1 befinden.

  • Als Referenz können Sie die Leistung einer an einen PD angehängten VM vergleichen und sie mit der Leistung einer Filestore-Instanz vergleichen.

    • Wenn die mit dem PD angehängte VM im Vergleich zur Filestore-Instanz eine ähnliche oder langsamere Leistung aufweist, kann dies auf einen Leistungsengpass im Zusammenhang mit Filestore hindeuten. Versuchen Sie Folgendes, um die Basisleistung Ihrer Nicht-Filestore-Ressourcen zu verbessern:

      • Wenden Sie die Option gsutil -m an. Mit dieser Option können unterstützte Vorgänge wie cp, mv und rsync parallel ausgeführt werden.

      • Wenden Sie die folgenden gsutil-Konfigurationen an. Alle sind änderbare boto-Konfigurationswerte, die in der boto-Konfigurationsdatei festgelegt sind. Nutzer können die Datei direkt ändern (empfohlen) oder die Option -o verwenden:

    • Wenn die Leistung der Filestore-Instanz wesentlich langsamer ist als die an den PD angehängte VM, versuchen Sie, den Vorgang auf mehrere VMs zu verteilen.

      • Dies verbessert die Leistung der Lesevorgänge in Cloud Storage.

      • Für Instanzen der Stufe Enterprise und High Scale sind mindestens vier Client-VMs erforderlich, um die volle Leistung zu nutzen. Dadurch wird sichergestellt, dass alle VMs im zugrunde liegenden Filestore-Cluster vollständig genutzt werden. Weitere Informationen finden Sie unter Leistung von Einzel- und Mehrfach-Client-VMs.

Testleistung

Wenn Sie Linux verwenden, können Sie mit dem fio-Tool den Lese- und Schreibdurchsatz und die IOPS für Instanzen der Basisstufe vergleichen. Die Beispiele in diesem Abschnitt zeigen allgemeine Benchmarks, die Sie möglicherweise ausführen möchten. Möglicherweise müssen Sie fio von mehreren Client-VM-Instanzen aus ausführen, um maximale Leistung zu erzielen. Diese Methode zum Benchmarking der Leistung liefert keine genauen Ergebnisse für Instanzen der Enterprise- und High Scale-Stufe.

Im folgenden Beispiel wird der maximale Schreibdurchsatz gemessen:

fio --ioengine=libaio --filesize=32G --ramp_time=2s \
--runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \
--group_reporting --directory=/mnt/nfs  \
--name=write --blocksize=1m --iodepth=64 --readwrite=write

Im folgenden Beispiel werden maximale Schreib-IOPS gemessen:

fio --ioengine=libaio --filesize=32G --ramp_time=2s \
--runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \
--group_reporting --directory=/mnt/nfs  \
--name=randwrite --blocksize=4k --iodepth=256 --readwrite=randwrite

Im folgenden Beispiel wird der maximale Lesedurchsatz gemessen:

fio --ioengine=libaio --filesize=32G --ramp_time=2s \
--runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \
--group_reporting --directory=/mnt/nfs  \
--name=read --blocksize=1m --iodepth=64 --readwrite=read

Im folgenden Beispiel werden maximale Lese-IOPS gemessen:

fio --ioengine=libaio --filesize=32G --ramp_time=2s \
--runtime=5m --numjobs=16 --direct=1 --verify=0 --randrepeat=0 \
--group_reporting --directory=/mnt/nfs  \
--name=randread --blocksize=4k --iodepth=256 --readwrite=randread

Weitere Informationen