GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Verwenden von nfsstat und nfsiostat zur Behebung von NFS-Leistungsproblemen unter Linux

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


Linux
  1. Fehlerbehebung mit dem proc-Dateisystem unter Linux

  2. Einrichten eines NFS-Servers und -Clients unter Scientific Linux 6.3

  3. Grundlegende Befehle zur Behebung von Leistungsproblemen unter Linux

  4. Verwendung von rz und sz unter Linux-Shell

  5. Probleme bei der Verwendung von sort und comm

Wie ich Funktionen und Leistung in meinem Linux-Terminal ausbalanciere

Duales Booten von Windows und Linux über UEFI

Automount NFS-Freigabe in Linux mit autofs

Beheben und überwachen Sie die Linux-Systemleistung mit nmon

So beheben Sie NFS-Übertragungslatenzprobleme mit „nfsiostat“ in CentOS / RHEL

Verwenden von vmstat zum Beheben von Leistungsproblemen unter Linux