Auf dieser Seite wird beschrieben, wie Sie Linux-NFS-Clients optimieren, die NetApp Volumes-Exporte einbinden. Bei vielen Arbeitslasten ist keine Optimierung erforderlich. Sofern Sie keinen höheren Durchsatz, mehr IOPS, eine geringere Metadatenlast auf dem Volume oder ein bestimmtes Caching-Verhalten benötigen, verwenden Sie den Mount-Befehl aus derGoogle Cloud -Konsole.
Weitere Informationen zu Verbindungsschritten, Einrichtung der Exportrichtlinie und Bereitstellungsbefehlen finden Sie unter NFS-Clients verbinden.
Clients konfigurieren
Konfigurieren Sie die Linux-NFS-Einstellungen in der folgenden Reihenfolge:
Kernel-Nebenläufigkeit: Legen Sie vor dem Bereitstellen des Dateisystems die Anzahl der NFS-Anforderungsslots (Slottabelleneinträge für NFSv3 oder Sitzungsslots für NFSv4.1) fest. Wenn Sie Einstellungen ändern, müssen Sie das Dateisystem neu einbinden. Weitere Informationen finden Sie unter Linux-NFS-Nebenläufigkeit.
Mount-Optionen: Wählen Sie beim Mounten die Protokollversion, die E/A-Größe, die Anzahl der TCP-Verbindungen, die Sperrung und die Cache-bezogenen Optionen aus. Weitere Informationen finden Sie unter Linux-NFS-Bereitstellungsoptionen.
Read-ahead: Passen Sie das sequenzielle Read-Ahead-Prefetching pro Mount-Point an, nachdem das Volume bereitgestellt wurde. Weitere Informationen finden Sie unter Linux NFS read-ahead.
In der folgenden Tabelle sind diese Konfigurationsschritte zusammengefasst:
| Schritt | Wann | Was wird gesteuert? | Konfiguration | Leitfaden |
|---|---|---|---|---|
| 1 | Vor der ersten Bereitstellung oder vor der erneuten Bereitstellung | Ausstehende RPC-Vorgänge pro TCP-Verbindung; NFSv4.1-Befehle pro Sitzung | /etc/sysctl.conf,/etc/modprobe.d/ |
Linux-NFS-Nebenläufigkeit |
| 2 | Bei der Bereitstellung | Protokoll, E/A-Übertragungsgröße, Anzahl der Verbindungen, Sperrung und Attributcache | mount -o, /etc/fstab |
Linux-NFS-Bereitstellungsoptionen |
| 3 | Nach der Bereitstellung | Sequenzielles Lesen von Prefetch | /sys/class/bdi/.../read_ahead_kb, udev-Regeln |
Linux NFS-Read-Ahead |
Zusammenwirken der Einstellungen
Der Linux-Kernel definiert die Parallelität pro Verbindung (Schritt 1 in der vorherigen Tabelle). Mit der Mount-Option nconnect (Schritt 2 in der vorherigen Tabelle) können Sie mehrere TCP-Verbindungen von einem Client zur selben Volume-IP-Adresse öffnen.
Die ungefähre Anzahl gleichzeitiger Nutzer für einen Client wird so berechnet:
(slots per connection) × (nconnect value)
Jede TCP-Verbindung zu einem NetApp Volumes-NFS-Endpunkt unterstützt bis zu 128 ausstehende Vorgänge pro Verbindung für NFSv3. Bei NFSv4.1 werden auch Grenzwerte auf Sitzungsebene ausgehandelt. Eine einzelne TCP-Verbindung kann die effektive Parallelität unter das Sitzungsmaximum begrenzen. Weitere Informationen finden Sie unter Linux – NFS-Nebenläufigkeit.
Wenn mehrere Clients dieselbe Volume-IP-Adresse einbinden, verwenden Sie ein niedrigeres Slotlimit pro Client, damit die Gesamtzahl der ausstehenden Vorgänge in der Clientflotte innerhalb der empfohlenen Grenzwerte bleibt.
Sie konfigurieren den Read-Ahead-Wert pro Bereitstellungspunkt (Schritt 3 in der vorherigen Tabelle). Er hängt von der Bereitstellungsoption rsize und den Standardeinstellungen der Linux-Distribution ab. Einige Distributionen verwenden unabhängig von rsize einen festen Read-Ahead-Wert von 128 KiB, was die Leistung beim sequenziellen Lesen beeinträchtigen kann, bis Sie den Wert anpassen.
Mount-Optionen und Kerneleinstellungen ändern nicht die Exportrichtlinien, die Kerberos-Konfiguration, die Firewallanforderungen oder die Durchsatz- und IOPS-Grenzwerte auf Volume-Serviceebene.
Ausgangspunkte für Arbeitslasten
Die folgende Tabelle enthält einige Ausgangspunkte. Prüfen Sie die Einstellungen mit Ihrer Anwendung, Linux-Distribution und Ihrem Netzwerkpfad.
| Arbeitslast | Kernel-Nebenläufigkeit | Bereitstellungsoptionen | Read-Ahead |
|---|---|---|---|
| Für allgemeine Zwecke | Standardeinstellung des Betriebssystems | Anleitung zum Einbinden aus der Google Cloud Console verwenden | Standardeinstellung des Betriebssystems |
| Einzelne VM, hoher Durchsatz/IOPS |
|
|
Optimieren, wenn Arbeitslasten durch sequenzielle Lesevorgänge begrenzt werden |
| Viele Clients (EDA/HPC/Renderfarm) |
|
|
Oft höher bei großen, statischen Datasets |
| Kerberos NFSv4.1 |
|
|
Nach Bedarf für sequenzielle Lesevorgänge |
| NFSv3 ohne Advisory Locks | Standardeinstellung des Betriebssystems |
|
Nach Bedarf |
Feinabstimmung messen und validieren
Führen Sie nach der Aktualisierung der Clienteinstellungen die folgenden Schritte aus:
Führen Sie
nfsiostat,mountstatsundnfsstatauf dem Client aus. Weitere Informationen finden Sie unter Leistung überwachen.Vergleichen Sie Ihre Ergebnisse mit Leistungsbenchmarks. Für diese Benchmarks wurden
nconnect=16,rsize=65536undwsize=65536für einige NFSv3-Tests unter Red Hat Enterprise Linux 9 verwendet.
Durch die Optimierung des Clients wird die Effizienz der Nutzung des Netzwerkpfads zum Volume für eine VM verbessert. Die Ergebnisse können weiterhin durch die Volume-Kapazität, das Serviceniveau, die Speicherpoollimits und die Größe der Compute Engine-VM eingeschränkt werden.
Nächste Schritte
Nebenläufigkeit optimieren: Linux-NFS-Nebenläufigkeit.
Bereitstellungsoptionen anpassen: Linux-NFS-Bereitstellungsoptionen.
Sequenzielle Lesevorgänge optimieren: Linux-NFS-Read-Ahead.