2009-08-06 11 views
0

Ich habe einen Gentoo diskless Client, der mit NFS mounts und es scheint, als wäre der Durchsatz von NFS langsam. iperf zeigt das Netzwerk in der Lage, 770 Mb/s zu drücken und hdparm zeigt die Sata - Festplatte auf dem Server mit 90 Mb/s, aber eine dd über das Netzwerk zeigt nur 10 Mb/s (ist etwa 40 Mb/s wenn die Derselbe Test wird auf dem Server mit einer dritten Maschine durchgeführt.Linux Diskless Client NFS Durchsatz

Seltsame Sache ist, dass der pxeboot nfsver2 mounts. Nicht sicher, ob dies ein Problem ist oder nicht, aber andere Mounts nach dem Start mounten als nfsver3. Es scheint wirklich, als wäre es ein Config-Problem mit NFS irgendwo, aber ich habe nichts gefunden, was einen Unterschied macht. Rsize = 8k, wsize = 8k, noatime, async. Hat jemand irgendwelche Tipps zu suchen oder ist das 10 Mb/s wirklich der Durchsatz, den ich für einen plattenlosen Client erwarten sollte?

+1

Gehört zu serverfault.com? – drdaeman

Antwort

0

Interessant, was die Lösung war. Wenn Sie ein pxelinux nfs-Root-Verzeichnis bereitstellen, müssen Sie die nfs-Parameter in der Datei pxelinux.cfg (nicht in fstab) festlegen. Bei der Einstellung der nfs root-Partition auf nfsver3, tcp habe ich gute Performance-Gewinne. Was jedoch den Unterschied machte, war, die Parameter rsize und wsize sowohl in der Konfigurationsdatei pxelinux als auch in fstab zu entfernen und nfs herauszufinden, wie groß die Blockgröße sein sollte. Dies ließ die Nfs lesen/schreiben ausführen, was ich erwartet hatte. Hier ist meine Konfiguration und einige Metriken, wenn es jemand anderem hilft.


one ~ # nfsstat -m 
/from /dev/root 
Flags: rw,vers=3,rsize=4096,wsize=4096,namlen=255,hard,nointr,nolock,proto=tcp, 
timeo=600,retrans=2,sec=sys,addr=192.168.0.5 

/store/tv from 192.168.99.99:/store/tv 
Flags: rw,noatime,vers=3,rsize=524288,wsize=524288,namlen=255,hard,nointr,noloc 
k,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.99.99,mountvers=3,mountp 
roto=tcp,addr=192.168.99.99 

one ~ # time dd if=/dev/null of=/store/tv/test bs=16k count=10000 
10000+0 records in 
10000+0 records out 
163840000 bytes (164 MB) copied, 2.79913 s, 58.5 MB/s 

real 0m3.048s 
user 0m0.033s 
sys  0m1.983s 

one pxelinux.cfg # time dd if=/store/tv/test of=/dev/null bs=16k 
154614+1 records in 
154614+1 records out 
2533208064 bytes (2.5 GB) copied, 56.4591 s, 44.9 MB/s 

real 0m56.509s 
user 0m0.163s 
sys  0m26.802s 
0

Ich nehme an, das ist Gigabit-Netzwerk, über das wir reden; 100Mbit-Netzwerke haben ein Maximum von etwa 10 Megabyte pro Sekunde.

NFS ist nicht sehr effizient für einige Dinge, aber Massenübertragungen sollten immer noch mit der Geschwindigkeit des Drahtes durchgeführt werden können. Wie schnell können Sie Dateien über das gleiche Netzwerk übertragen, zum Beispiel über FTP oder http?

Vielleicht verlangsamt der Switch die Dinge, haben Sie versucht, die Boxen direkt miteinander über ein Kabel zu verbinden?