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 unterschiedlicher 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.
In den folgenden Tabellen wird die erwartete Leistung von Filestore-Instanzen basierend auf der Dienststufe und der konfigurierten Kapazität angezeigt:
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 |
In der vorherigen Tabelle sehen Sie die erwartete Leistung bei der minimalen und maximalen Kapazität für jede Dienstebene. Innerhalb dieser Grenzen steigt die Leistung linear mit der Kapazität. Wenn Sie beispielsweise die Kapazität Ihrer Enterprise-Instanz von 1 TiB auf 2 TiB verdoppeln, verdoppelt sich auch die erwartete Leistung der Instanz von 12.000/4.000 Lese- und Schreib-IOPS auf 24.000/8.000 Lese- und Schreib-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 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 leistungsoptimiert für mehrere Client-VMs, nicht für eine einzelne Client-VM.
Für zonale, regionale und Enterprise-Instanzen sind mindestens vier Client-VMs erforderlich, um die volle Leistung zu nutzen. So werden alle VMs im zugrunde liegenden Filestore-Cluster optimal genutzt.
Der kleinste skalierbare Filestore-Cluster besteht aus 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. Bei Verwendung einer einzelnen Client-VM werden Lese- und Schreibvorgänge nur von einer einzelnen Filestore-Cluster-VM ausgeführt.
Leistung von 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 CLI, 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.
Speicherorte mit zwei Regionen bieten die höchste Leistung für in Cloud Storage gespeicherte Daten. Achten Sie bei Verwendung dieser Option darauf, dass sich die anderen Ressourcen in einer der einzelnen Regionen befinden, die in der Dual-Region enthalten sind. Wenn sich Ihre Cloud Storage-Daten beispielsweise in
us-central1,us-west1
befinden, müssen sich Ihre Client-VM und Ihre Filestore-Instanz inus-central1
befinden.Prüfen Sie zur Referenz die Leistung einer VM mit angeschlossenem PD und vergleichen Sie sie mit der Leistung einer Filestore-Instanz.
Wenn die Leistung der VM mit angeschlossenem PD mit der der Filestore-Instanz vergleichbar oder langsamer ist, kann dies auf ein Leistungsengpass hindeuten, der nicht mit Filestore zusammenhängt. Wenn Sie die Grundleistung Ihrer nicht zu Filestore gehörenden Ressourcen verbessern möchten, können Sie die gcloud-Befehlszeileneigenschaften für parallele zusammengesetzte Uploads anpassen. Weitere Informationen finden Sie unter So verwenden Tools und APIs parallele zusammengesetzte Uploads.
Wenn die Leistung der Filestore-Instanz deutlich langsamer ist als die der VM mit angeschlossenem PD, versuchen Sie, den Vorgang auf mehrere VMs zu verteilen.
Dadurch wird die Leistung von Lesevorgängen aus Cloud Storage verbessert.
Für zonale, regionale und Unternehmensinstanzen sind mindestens vier Client-VMs erforderlich, um die volle Leistung zu nutzen. So werden alle VMs im zugrunde liegenden Filestore-Cluster optimal genutzt. Weitere Informationen finden Sie unter Leistung von einzelnen und mehreren 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. Diese Methode zum Benchmarking der Leistung wird für zonale, regionale und Enterprise-Instanzen nicht empfohlen.
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