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. ]