Instanzleistung optimieren und testen

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 den erwarteten Werten abweichen. Dazu gehören unter anderem die Verwendung von Caching, die Anzahl der Client-VMs, der Maschinentyp der Client-VMs und die getestete Arbeitslast.

Die folgenden Tabellen zeigen die erwartete Leistung von Filestore je nach Dienststufe und konfigurierte Kapazität:

Leistung Kapazität Lese- und Schreib-IOPS Lese- und Schreibdurchsatz (MiB/s)
BASIC_HDD 1 TiB bis 10 TiB 600/1,000 100/100
BASIC_HDD 10 TiB bis 63,9 TiB 1.000/5.000 180/120
BASIC_SSD 2,5 TiB bis 63,9 TiB 60,000/25,000 1,200/350
ZONAL 1 TiB 9.200/2.600 260/88
ZONAL 9,75 TiB 89.700/25.350 2.535/858
ZONAL 10 TiB 92.000/26.000 2.600/880
ZONAL 100 TiB 920.000/260.000 26.000/8.800
REGIONAL 1 TiB 12.000/4.000 120/100
REGIONAL 9,75 TiB 117.000/39.000 1.170/975
REGIONAL 10 TiB 92.000/26.000 2.600/880
REGIONAL 100 TiB 920.000/260.000 26.000/8.800
ENTERPRISE 1 TiB 12.000/4.000 120/100
ENTERPRISE 10 TiB 120.000/40.000 1.200/1.000

Die vorherige Tabelle zeigt die erwartete Leistung beim Mindest- und Höchstwert. Kapazität für jede Dienststufe. Zwischen diesen Limits wird die Leistung linear skaliert. wenn die Kapazität steigt. Wenn Sie z. B. Ihre Unternehmensinstanz verdoppeln von 1 TiB bis 2 TiB, entspricht die erwartete Leistung der Instanz verdoppelt sich von 12.000/4.000 Lese- und Schreib-IOPS auf 24.000/8.000 Lese- und Schreibvorgänge IOPS

In Szenarien mit einem oder wenigen Clients müssen Sie die Anzahl der TCP-Verbindungen mit den nconnect ein, um die maximale NFS-Leistung zu erreichen. Wir empfehlen, bis zu 7 Verbindungen für die zonale Dienstebene und bis zu 2 Verbindungen für die regionale und Enterprise-Ebene anzugeben. Im Allgemeinen gilt: Je größer die Dateifreigabekapazität und je weniger Client-VMs, desto 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. Mit dieser Bandbreite für ausgehenden Traffic kann der Client etwa 16 Gbps an Lese-Bandbreite für cache-freundliche Arbeitslasten 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, 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=262144 Der NFS-Client kann pro READ-Anfrage maximal 262.144 Byte vom NFS-Server empfangen.
Hinweis: Legen Sie für Instanzen der Basisstufe den Wert für rsize auf 1048576 fest.
wsize=1048576 Der NFS-Client kann pro WRITE-Anfrage maximal 1.048.576 Byte (1 MiB) an den NFS-Server senden.
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 einzelner und mehrerer Client-VMs

Die skalierbaren Dienstebenen von Filestore sind für die Leistung mehrerer Client-VMs und nicht für eine einzelne Client-VM optimiert.

Bei zonalen, regionalen und Unternehmensinstanzen sind mindestens vier Client-VMs die Sie benötigen, um die volle Leistung nutzen zu können. Dadurch wird sichergestellt, dass alle VMs im zugrunde liegenden Filestore-Cluster voll ausgelastet sind.

Für zusätzlichen Kontext hat der kleinste skalierbare Filestore-Cluster vier VMs Jede Client-VM kommuniziert nur mit einer Filestore-Cluster-VM, unabhängig von der Anzahl der NFS-Verbindungen pro Client, die mit der nconnect-Montageoption angegeben wurden. Wenn Sie eine einzelne Client-VM verwenden, die von einer einzelnen Filestore-Cluster-VM ausgeführt werden.

Leistung aller Google Cloud-Ressourcen verbessern

Vorgänge, die mehrere Google Cloud-Ressourcen umfassen, z. B. das Kopieren von Daten aus Cloud Storage in eine Filestore-Instanz mit der gcloud-Befehlszeile, können langsam sein. So können Sie Leistungsprobleme vermeiden:

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

    Dual-Regionen bieten ein für die Option mit der höchsten Leistung für die in Cloud Storage gespeicherten Daten. Bei Verwendung Mit dieser Option sorgen Sie dafür, dass sich die anderen Ressourcen in einer der Regionen die in der Dual-Region liegt. Wenn Ihre Cloud Storage-Daten z. B. befindet sich in us-central1,us-west1, achten Sie darauf, dass Ihre Client-VM und Filestore-Instanz befindet sich in us-central1.

  • Prüfen Sie als Referenz die Leistung einer an einen PD angehängten VM und mit der Leistung einer Filestore-Instanz vergleichen.

    • Wenn die Leistung der an den PD angeschlossenen VM im Vergleich zu der Filestore-Instanz, könnte dies auf eine Leistung und Engpässe haben, die nichts mit Filestore zu tun haben. Um den Normalbereich zu verbessern die Leistung Ihrer Nicht-Filestore-Ressourcen nutzen, können Sie Attribute der gcloud CLI, die mit parallelen zusammengesetzten Uploads verknüpft sind. Weitere Informationen finden Sie unter Wie Tools und APIs parallele zusammengesetzte Uploads verwenden

    • Wenn die Leistung der Filestore-Instanz besonders langsamer als die VM mit dem PD ist, versuchen Sie, den Vorgang auf mehrere VMs zu verteilen.

      • Dies trägt dazu bei, die Leistung von Lesevorgängen aus Cloud Storage zu verbessern.

      • Für zonale, regionale und Unternehmensinstanzen mindestens vier Client-VMs sind erforderlich, um von der vollen Leistung zu profitieren. So wird sichergestellt, dass alle der VMs im zugrunde liegenden Filestore-Cluster sind vollständig genutzt werden. Weitere Informationen finden Sie unter Leistung von einzelnen und mehreren Client-VMs.

Testleistung

Unter Linux können Sie die Datei fio verwenden. Tool zum Benchmarking des Lese- und Schreibdurchsatzes und der IOPS für Instanzen der Basisstufe. Beachten Sie, dass diese Methode zum Benchmarking der Leistung für zonale, regionale und Unternehmensinstanzen.

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.

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

Nächste Schritte