Wie setze ich die E / A-Priorität für NFS-Client-Prozesse?


7

Die Konfiguration ist: Ein Linux-Server und eine Nas-Box (Netgear), die als NFS-Server fungieren.

Es ist für einen einzelnen Prozess auf dem Linux-Server einfach, die gesamte E / A-Bandbreite zu nutzen, indem einfach eine Datei von der NFS-Freigabe auf die NFS-Freigabe kopiert wird. Der E / A-Kanal ist blockiert und alle anderen Prozesse auf dem Server warten fast nicht mehr auf E / A. Das Laden wächst auf 10-20 (vier Kerne), es erscheinen immer mehr pdflush-Prozesse ... bis jemand die Dateikopie stoppt.

Wie kann ich die vom CP-Prozess verwendete E / A-Bandbreite begrenzen? nicewird natürlich nicht helfen, hat aber auch ionice -c3keine auswirkung. Beeinflusst Ionice überhaupt NFS-Reittiere? Gibt es so etwas wie nfsnice ?

Antworten:


1

Auf welche Werte für " rsize " und " wsize " sind eingestellt?

Normalerweise verhandeln moderne Linux-NFS-Clients die Maximalwerte mit dem Server, aber manchmal können sie weit von der Basis entfernt sein. Zum Beispiel hatten wir rsize=1m,wsize=1min / proc / mounts, ohne zu wissen, dass der NAS nicht mehr als 32768 unterstützen kann. Dieselbe Langsamkeit, der gleiche Effekt des explodierenden Ladevorgangs wie von Ihnen beschrieben.

Das Setzen beider Werte auf 32 KB löste sofort die Langsamkeit und die steigende Last für uns. Der Desktop reagierte auch beim Kopieren von Gigabyte pro NFS perfekt. Und wir haben unsere Home-Verzeichnisse auf NFS ...

Vielleicht zeigt sich die NFS-Server-Implementierung Ihres NAS ein wenig, indem sie mehr Größe bietet, als sie kauen kann ...?

Prost


0

Dies scheint, als würde der Netgear NAS nicht mithalten und blockierte E / A verursachen. Wie sieht der NAS aus? Wie viele Laufwerke? Wie sieht die RAID-Konfiguration aus? Dies scheint ein serverseitiges Problem zu sein.


Die Konfiguration ist "RAID X", ein proprietäres Netgear-Level mit 3 1-TB-Festplatten, was zu einer Kapazität von 2 TB führt (ähnlich wie bei raid5). Der gesamte Speicherplatz ist der NFS-Freigabe zugeordnet.
Moritz Beide

Es mag ein serverseitiges Problem sein, aber immer noch mit nur einem Prozess, der auf die NFS-Freigabe zugreift, funktionieren die Dinge recht gut, aber sobald wir mehr Prozesse haben, neigen einige dazu, zu hängen. Ein nfsniceBefehl / API könnte noch helfen ...
Moritz Beide

Haben Sie eine Möglichkeit, die CPU-Auslastung des Netgear oder seine Festplattenaktivität während des Zeitraums blockierter E / A auf dem NFS-Client anzuzeigen?
ewwhite
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.