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, z. B. aufgrund der Verwendung von Caching, der Anzahl der Client-VMs, des Maschinentyps der Client-VMs und der getesteten Arbeitslast.
Die folgenden Tabellen zeigen die erwartete Leistung von Filestore-Instanzen basierend auf ihrer Dienststufe und der konfigurierten 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 bei der minimalen und maximalen Kapazität für jede Dienststufe. Zwischen diesen Limits wird die Leistung linear mit der Kapazität skaliert. Wenn Sie beispielsweise die Kapazität Ihrer Unternehmensinstanz von 1 TiB auf 2 TiB verdoppeln, verdoppelt sich 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 erreichen. Wir empfehlen, bis zu 7
Verbindungen für die zonale Dienststufe und bis zu 2
Verbindungen für die regionale und die Unternehmensstufe anzugeben. Im Allgemeinen gilt: Je größer die Dateifreigabekapazität und je weniger Client-VMs sind, die verbunden werden, desto höher ist die Leistung, wenn Sie zusätzliche Verbindungen mit nconnect
angeben.
Empfohlener Client-Maschinentyp
Wir empfehlen einen Compute Engine-Maschinentyp wie n2-standard-8
, der eine Bandbreite für ausgehenden Traffic von 16 Gbps
zur Verfügung stellt. Mit dieser Bandbreite für ausgehenden Traffic kann der Client etwa 16 Gbps
-Lesebandbreite für cache-freundliche Arbeitslasten erreichen. Weitere Informationen finden Sie unter Netzwerkbandbreite.
Bereitstellungsoptionen für Linux-Clients
Wir empfehlen die Verwendung der folgenden NFS-Bereitstellungsoptionen, insbesondere die hard
-Bereitstellung, async
sowie die Optionen rsize
und wsize
, um die beste Leistung auf Linux-Client-VM-Instanzen zu erzielen. 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 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. |
VM-Leistung für einzelne und mehrere Clients
Die skalierbaren Dienststufen von Filestore sind für mehrere Client-VMs und nicht für eine einzelne Client-VM leistungsoptimiert.
Für zonale, regionale und Unternehmensinstanzen sind mindestens vier Client-VMs erforderlich, um die volle Leistung nutzen zu können. Dadurch wird sichergestellt, dass alle VMs im zugrunde liegenden Filestore-Cluster vollständig ausgelastet sind.
Für zusätzlichen Kontext hat der kleinste skalierbare Filestore-Cluster vier VMs. Jede Client-VM kommuniziert mit nur einer Filestore-Cluster-VM, unabhängig von der Anzahl der NFS-Verbindungen pro Client, die mit der Bereitstellungsoption nconnect
angegeben wurden. Wenn Sie eine einzelne Client-VM verwenden, werden Lese- und Schreibvorgänge nur von einer einzelnen Filestore-Cluster-VM aus ausgeführt.
Leistung aller 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:
Achten Sie darauf, dass sich der Cloud Storage-Bucket, die Client-VM und die Filestore-Instanz in derselben Region befinden.
Dual-Regionen sind eine Option mit der höchsten Leistung für Daten, die in Cloud Storage gespeichert sind. Achten Sie bei Verwendung dieser Option darauf, dass sich die anderen Ressourcen in einer der einzelnen Regionen in der Dual-Region befinden. Wenn sich Ihre Cloud Storage-Daten beispielsweise in
us-central1,us-west1
befinden, achten Sie darauf, dass sich Ihre Client-VM und Filestore-Instanz inus-central1
befinden.Prüfen Sie als Referenz die Leistung einer mit einem PD verknüpften VM und vergleichen Sie sie mit der Leistung einer Filestore-Instanz.
Wenn die Leistung der an den PD angehängten VM im Vergleich zur Filestore-Instanz ähnlich oder langsamer ist, kann dies auf einen Leistungsengpass hinweisen, der in keinem Zusammenhang mit Filestore steht. 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 wiecp
,mv
undrsync
parallel ausgeführt werden.Wenden Sie die folgenden
gsutil
-Konfigurationen an. Beide sind änderbareboto
-Konfigurationswerte, die in der Konfigurationsdateiboto
festgelegt werden. Nutzer können die Datei direkt ändern (empfohlen) oder die Optiongsutil -o
verwenden:
Wenn die Leistung der Filestore-Instanz deutlich langsamer ist als die der mit dem PD verknüpften VM, 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 sind mindestens vier Client-VMs erforderlich, um die volle Leistung nutzen zu können. Dadurch wird sichergestellt, dass alle VMs im zugrunde liegenden Filestore-Cluster vollständig ausgelastet sind. Weitere Informationen finden Sie unter Leistung von VMs mit einzelnen und mehreren Clients.
Testleistung
Unter Linux können Sie mit dem fio-Tool den Lese- und Schreibdurchsatz und die IOPS für Instanzen der Basisstufe messen. Diese Methode zum Leistungs-Benchmarking wird für zonale, regionale und Unternehmensinstanzen 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