h^2
hat ne Keule +1
Also, ich hatte ja früher schno Probleme mit NFS und nachdem jetzt Server und Client beide auf FreeBSD9.1 sind und auch beide das neue NFS standardmäßig verwenden, habe ich mich entschieden ein paar "Benchmarks".
Zunächst geht es um die nackte NFS-Performance im Vergleich zu netcat, auch nur NFS3 und um die Frage TCP oder UDP. Wenn sich hier die Fragen geklärt haben, werde ich auch NFS4 testen und mit Jumbo-Frames rumspielen.
Die ersten Ergebnisse:
Die ersten vier Zeilen sind schreibend, die zweiten vier sind lesend.
Wie deutlich zu sehen ist, erreiche ich um die 100MiB / s wenn weder NFS noch ZFS im Spiel sind. Ich benutze das einfach als Richtwert für das was ohne Jumbo-Frames theoretisch möglich ist.
Wenn wir die anderen Zahlen analysieren finden wir folgende paradoxe Situation vor:
· Schreibend kann ich mit NFS3 TCP ungefähr ausreizen was auf ZFS möglich scheint [1]
· Lesend kann ich wiederum mit NFS3 UDP ungefähr ausreizen was möglich scheint
· jeweils in die andere Richtung verhalten sich beide sehr schlecht
Könnt ihr sowas auch beobachten? Welche Einstellungen verwendet ihr?
Insbesondere die TCP-Leseperformance ist so miserabel, da ist auf jeden Fall was im Argen. Ich kann später vielleicht noch das Ganze von einem Linux-Client aus testen, dann weiß ich ob der Server oder der Client verantwortlich ist...
Danke!
PS: mount Optionen für NFS3 TCP sind einfach tcp,rw und für UDP udp,rw,rsize=32768,wsize=32768.
[1] Die ZFS performance werde ich nochmal getrennt debuggen, hier ist anzumerken, dass compression, dedup und geli dazu kommen. Ist aber hier auch nicht relevant, da es um die performance im Vergleich zu netcat geht.
edit: OLDNFS Zahlen hinzugefügt
Zunächst geht es um die nackte NFS-Performance im Vergleich zu netcat, auch nur NFS3 und um die Frage TCP oder UDP. Wenn sich hier die Fragen geklärt haben, werde ich auch NFS4 testen und mit Jumbo-Frames rumspielen.
Die ersten Ergebnisse:
Code:
CLIENT TRANSPORT SERVER TIME (s) MiB/s
tmpfs >>>>>>>>>> Netcat >>>>>>>>> /dev/null 9 113.70
tmpfs >>>>>>>>>> Netcat >>>>>>>>> ZFS (comp) 47 21.78
tmpfs >>>>>>>>>> NFS3 UDP >>>>>>>>> ZFS (comp) 171 5.98
tmpfs >>>>>>>>>> NFS3 TCP >>>>>>>>> ZFS (comp) 51 20.07
tmpfs >>>>>>>>> OLDNFS3 UDP >>>>>>>> ZFS (comp) 73 14.02
tmpfs >>>>>>>>> OLDNFS3 TCP >>>>>>>> ZFS (comp) 59 17.36
/dev/null <<<<<<<<<< Netcat <<<<<<<<< tmpfs 10 102.40
/dev/null <<<<<<<<<< Netcat <<<<<<<<< ZFS (comp) 11 93.09
tmpfs <<<<<<<<<< NFS3 UDP <<<<<<<<< ZFS (comp) 11 93.09
tmpfs <<<<<<<<<< NFS3 TCP <<<<<<<<< ZFS (comp) 341 3.00
tmpfs <<<<<<<<< OLDNFS3 UDP <<<<<<<< ZFS (comp) 11 93.09
tmpfs <<<<<<<<< OLDNFS3 TCP <<<<<<<< ZFS (comp) 10 102.40
Wie deutlich zu sehen ist, erreiche ich um die 100MiB / s wenn weder NFS noch ZFS im Spiel sind. Ich benutze das einfach als Richtwert für das was ohne Jumbo-Frames theoretisch möglich ist.
Wenn wir die anderen Zahlen analysieren finden wir folgende paradoxe Situation vor:
· Schreibend kann ich mit NFS3 TCP ungefähr ausreizen was auf ZFS möglich scheint [1]
· Lesend kann ich wiederum mit NFS3 UDP ungefähr ausreizen was möglich scheint
· jeweils in die andere Richtung verhalten sich beide sehr schlecht
Könnt ihr sowas auch beobachten? Welche Einstellungen verwendet ihr?
Insbesondere die TCP-Leseperformance ist so miserabel, da ist auf jeden Fall was im Argen. Ich kann später vielleicht noch das Ganze von einem Linux-Client aus testen, dann weiß ich ob der Server oder der Client verantwortlich ist...
Danke!
PS: mount Optionen für NFS3 TCP sind einfach tcp,rw und für UDP udp,rw,rsize=32768,wsize=32768.
[1] Die ZFS performance werde ich nochmal getrennt debuggen, hier ist anzumerken, dass compression, dedup und geli dazu kommen. Ist aber hier auch nicht relevant, da es um die performance im Vergleich zu netcat geht.
edit: OLDNFS Zahlen hinzugefügt
Last edited: