Das Netzwerkdateisystem (NFS) ermöglicht es Maschinen, eine Festplattenpartition auf einer entfernten Maschine zu mounten, als wäre es eine lokale Festplatte. Es ermöglicht eine schnelle, nahtlose gemeinsame Nutzung von Dateien über ein Netzwerk. Da sich NFS jedoch auf die vorhandene Netzwerkinfrastruktur stützt, können Störungen im Netzwerk die Leistung der Verbindung beeinträchtigen. Die beiden wichtigsten Tools, die ich im Laufe der Jahre verwendet habe, um die Leistung von NFS sowohl aus der Server- als auch aus der Client-Perspektive zu analysieren, sind nfsstat
und nsfiostat
. Die beiden Tools sind Teil des nfs-utils-Pakets und müssen als solche installiert werden:
yum install -y nfs-utils
Das Verständnis der Ausgabe der Tools kann bei der Optimierung der NFS-Leistung hilfreich sein.
Der nfsstat-Befehl
Die nfsstat
Der Befehl zeigt statistische Informationen über die NFS- und RPC-Schnittstellen (Remote Procedure Call) zum Kernel an.
Führen Sie auf dem NFS-Server den folgenden Befehl aus:
nfsstat -s
Die Ausgabe sollte der folgenden ähneln:
Server rpc stats:
calls badcalls badclnt badauth xdrcall
107310012 0 0 0 0
Server nfs v4:
null compound
21 0% 107310004 99%
Server nfs v4 operations:
op0-unused op1-unused op2-future access close commit
0 0% 0 0% 0 0% 910848 0% 5671218 2% 153218 0%
create delegpurge delegreturn getattr getfh link
4104 0% 0 0% 517 0% 58659066 22% 8700995 3% 0 0%
Das wichtigste zu überprüfende Feld sind die badcalls
, die die Gesamtzahl der Anrufe darstellt, die von der RPC-Schicht abgelehnt wurden. Wenn der badcalls
größer als 0 ist, muss das zugrunde liegende Netzwerk überprüft werden, da es zu Latenzen kommen kann. Außerdem ist es sehr wichtig, den NFS-Server beim Entwerfen des Netzwerks in dasselbe Subnetz wie den NFS-Client zu stellen.
Auf dem NFS-Client führen Sie Folgendes aus:
nfsstat -c
Die Ausgabe sollte ähnlich wie unten aussehen:
Client rpc stats:
calls retrans authrefrsh
30557550 27686 11075
Client nfs v4:
null read write commit open open_conf
0 0% 1601136 5% 568239 1% 23683 0% 1652804 5% 1466260 4%
open_noat open_dgrd close setattr fsinfo renew
0 0% 0 0% 1648000 5% 27154 0% 8 0% 28320 0%
Aus dem Obigen geht hervor, dass der Client gut abschneidet, da er relativ wenige Neuübertragungsanfragen hat. Wenn Sie auf übermäßig viele Neuübertragungen stoßen, sollten Sie die Puffergrößen für die Datenübertragung anpassen, die durch mount
angegeben werden Befehlsoptionen rsize
und wsize
.
Sie können das verlorene Paket auch überprüfen, indem Sie den folgenden Befehl sowohl auf dem Server als auch auf dem Client ausführen:
nfsstat -o net
Der nfsiostat-Befehl
Der nfsiostat
Der Befehl funktioniert ähnlich wie der iostat
Befehl, wird aber für die NFS-Einhängepunkte auf dem Server verwendet. Es verwendet die Datei /proc/self/mountstats
als Eingabe und liefert Informationen über die Eingabe-/Ausgabeleistung von NFS-Freigaben, die auf dem System gemountet sind.
Der nfsiostat
Der Befehl wird auf dem NFS-Client verwendet, um seine Leistung bei der Kommunikation mit dem NFS-Server zu überprüfen.
Ausführen von nfsiostat
ohne Argument sollte eine Ausgabe ähnlich der folgenden haben:
10.10.1.10:/data/share mounted on /samba/students:
op/s rpc bklog
16.96 0.00
read: ops/s kB/s kB/op retrans avg RTT (ms) avg exe (ms)
0.900 5.392 5.990 0 (0.0%) 0.550 0.660
write: ops/s kB/s kB/op retrans avg RTT (ms) avg exe (ms)
0.031 21.818 708.149 0 (0.0%) 122.745 35874.872
Die wichtigsten Statistiken, auf die Sie achten sollten, sind:
retrans
- Dies ist die Anzahl der Neuübertragungen.avg RTT (ms)
- Dies ist die Dauer von dem Zeitpunkt, an dem der Kernel des Clients die RPC-Anforderung sendet, bis zu dem Zeitpunkt, an dem er die Antwort erhält.avg exe (ms)
- Dies ist die Dauer ab dem Zeitpunkt, an dem der NFS-Client die RPC-Anforderung an seinen Kernel sendet, bis die RPC-Anforderung abgeschlossen ist. Dazu gehört auch die RTT.
Eine sehr hohe avg RTT(ms)
und retrans
weist auf eine hohe Latenz im Netzwerk hin. Eine hohe Latenz wirkt sich auch auf die E/A-Leistung aus, da viele Zeitüberschreitungen auftreten. Der Client wird träge und es ist schwierig, mit ihm zu arbeiten.
Es ist auch sehr wichtig, immer ein dediziertes Netzwerk zwischen dem NFS-Server und dem NFS-Client zu haben, um einen hohen Durchsatz zu gewährleisten.
Abschluss
Die Verwendung von nfsstat
und nfsiostat
Probleme mit der NFS-Leistung zu beheben, kann Sie zu einem viel effizienteren Systemadministrator machen. Nehmen Sie sich etwas Zeit, um diese großartigen NFS-Tools kennenzulernen und zu verwenden.
[ Sie wollen mehr für Ihr Netzwerk? Laden Sie ein kostenloses E-Book zur Netzwerkautomatisierung mit Ansible herunter. ]