Page 1 of 1

Nas4free geschwindigkeits Tuning

Posted: 14 May 2014 14:34
by franky64
Hallo, ich wollte der Übersicht wegen betreff meines Nas4free Server Tunings einen weiteren Thread aufmachen.

Den Aufbau und meine ersten Schwierigkeiten viewtopic.php?f=29&t=6581

Mittlerweile habe ich eine Freigabe erstellt und greife von Windows Clients per Cifs darauf zu und kann lesend und schreiben relativ gleichmässig mit 50-70 Mbit/sek,
also etwas über die Hälfte der möglichen Netzwerkgeschwindigkeit drauf zugreifen.

Per NFS habe ich einen Linux Client, der direkt über einen internen Switch verbunden ist mit nahezu 100 Mbit/Sek lesen wie schreibend drauf zugreifen, dies allerdings
sehr stark schwankend! Auch fällt die CPU Auslastung ins Auge die teils über 50% analog zu den Schwankungen hochgeht.

Testübertragung war ein 7 gb film

Zur besseren Übersicht habe ich euch die graphen mal hochgeladen:

https://www.hidrive.strato.com/lnk/63HKGqjA
https://www.hidrive.strato.com/lnk/KjnqmT6m
https://www.hidrive.strato.com/lnk/a6HKmJHG

Hat jemand eine Idee was ich wo tunen kann um eine gleichmässigere Übertragung hinzubekommen, muss ich betreff meiner
loader.conf und meinem Ram noch etwas tunen?

Als Nachtrag noch Iperf tests, vom Linux Client aus zum NAS und umgekehrt

NAS: 10.10.10.60
Linux Client: 10.10.10.20

iperf -c 10.10.10.60 -w 64k
------------------------------------------------------------
Client connecting to 10.10.10.60, TCP port 5001
TCP window size: 128 KByte (WARNING: requested 64.0 KByte)
------------------------------------------------------------
[ 3] local 10.10.10.20 port 44076 connected with 10.10.10.60 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 986 MBytes 827 Mbits/sec

das gleiche andersrum:

nas4free: ~ # iperf -c 10.10.10.20 -w 64k
------------------------------------------------------------
Client connecting to 10.10.10.20, TCP port 5001
TCP window size: 65.0 KByte (WARNING: requested 64.0 KByte)
------------------------------------------------------------
[ 3] local 10.10.10.60 port 34109 connected with 10.10.10.20 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 1.09 GBytes 939 Mbits/sec

nas4free: ~ # iperf -c 10.10.10.20 -w 128k
------------------------------------------------------------
Client connecting to 10.10.10.20, TCP port 5001
TCP window size: 129 KByte (WARNING: requested 128 KByte)
------------------------------------------------------------
[ 3] local 10.10.10.60 port 10983 connected with 10.10.10.20 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 1.09 GBytes 940 Mbits/sec
nas4free: ~ #

esk2:/mnt/backup# iperf -c 10.10.10.60 -w 128k
------------------------------------------------------------
Client connecting to 10.10.10.60, TCP port 5001
TCP window size: 256 KByte (WARNING: requested 128 KByte)
------------------------------------------------------------
[ 3] local 10.10.10.20 port 44082 connected with 10.10.10.60 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 1013 MBytes 850 Mbits/sec
sk2:/mnt/backup#

Re: Nas4free geschwindigkeits Tuning

Posted: 14 May 2014 14:39
by b0ssman
hier ist die liste von siftu.

http://n4f.siftusystems.com/index.php/2 ... /comments/

dies hilft das performance probleme einzugrenzen.

Re: Nas4free geschwindigkeits Tuning

Posted: 14 May 2014 15:10
by franky64
@bossmann,

danke, die Liste war ich schon soweit durchgegangen, eigentlich ist alles gegeben, die iperf Tests sind ja soweit auch ok,
was mich stört sich die massiven auf und ab schwankungen. Ich habe zwar keinen Vergleich, denke aber mal das ist so nicht normal.

Wo kann ich denn eine abgetimmte version für die loader.conf für 28 G Ram bekommen.

Derzeit habe ich die 16G Version genommen aus einem Link hier, und die Ram Werte bisschen höher gesetzt.

vfs.zfs.arc_max = "20480M"
vfs.zfs.arc_min = "20480"
vfs.zfs.no_write_throttle = "0"
vfs.zfs.prefetch_disable = "0"
vfs.zfs.txg.timeout = "5"
vfs.zfs.vdev.max_pending = "10"
vfs.zfs.vdev.min_pending = "4"
vfs.zfs.write_limit_override = "0"
vm.kmem_size = "22528M"

Re: Nas4free geschwindigkeits Tuning

Posted: 14 May 2014 15:15
by b0ssman
das ist punkt 9 der liste.

Re: Nas4free geschwindigkeits Tuning

Posted: 14 May 2014 15:42
by crowi
wichtig ist auch Punkt 7, das 4k alignment.

Ausserdem kannst Du unter Services|CIFS/SMB|Settings noch mit dem Send/Recive buffer size spielen:
doppelte Werte, halbe Werte, und auch mal 0 eintragen, es gab mehrere Posts darüber, dass es einen positiven Einfluss hat.

Re: Nas4free geschwindigkeits Tuning

Posted: 14 May 2014 15:52
by franky64
ich hatte das mit dem ZFS Kernel tuning "überlesen" ich tue mich ein wenig schwer mit Englisch, daher "ungerne"
aber ich hab mir das Tool runtergeladen, 24G ausgewählt, alles andere erst mal so gelassen und rebootet, jeder Reboot, ca 5 Minuten.....
IBM Server sind da schlimm. Dann mal testen,

@crowi, das mit dem 4k hatte Princo im anderen thread schon beschrieben, hatte ich mir daher gemerkt. Ist schon drin.

Re: Nas4free geschwindigkeits Tuning

Posted: 14 May 2014 15:57
by b0ssman
poste mal deine dd werte

Re: Nas4free geschwindigkeits Tuning

Posted: 14 May 2014 17:51
by franky64
nas4free: boot # dd if=/mnt/pool/backup/test.dd of=/dev/null bs=2M count=10000
10000+0 records in
10000+0 records out
20971520000 bytes transferred in 26.805584 secs (782356394 bytes/sec)
nas4free: boot # dd if=/dev/zero of=/mnt/pool/backup/test.dd bs=2M count=10000
10000+0 records in
10000+0 records out
20971520000 bytes transferred in 74.721315 secs (280663155 bytes/sec)
nas4free: boot #

Re: Nas4free geschwindigkeits Tuning

Posted: 14 May 2014 17:53
by franky64
aktuelle load.conf

nas4free: boot # vi loader.conf
mfsroot_load="YES"
mfsroot_type="mfs_root"
mfsroot_name="/mfsroot"
hw.est.msr_info="0"
hw.hptrr.attach_generic="0"
kern.maxfiles="65536"
kern.maxfilesperproc="50000"
kern.cam.boot_delay="8000"
autoboot_delay="3"
isboot_load="YES"
zfs_load="YES"
# ZFS kernel tune
vm.kmem_size="22528M"
vfs.zfs.arc_min="20480M"
vfs.zfs.arc_max="20480M"
vfs.zfs.prefetch_disable="0"
vfs.zfs.txg.timeout="5"
vfs.zfs.vdev.max_pending="10"
vfs.zfs.vdev.min_pending="4"
vfs.zfs.write_limit_override="0"
vfs.zfs.no_write_throttle="0"

Re: Nas4free geschwindigkeits Tuning

Posted: 14 May 2014 17:56
by b0ssman
und der Power Daemon ist abgeschaltet?

Re: Nas4free geschwindigkeits Tuning

Posted: 14 May 2014 18:05
by franky64
Ja

Re: Nas4free geschwindigkeits Tuning

Posted: 14 May 2014 22:18
by franky64
so ich hab mal hin und her getestet, per samba/CIFS komme ich nicht über 50/60 Mbit, was ja nicht schlecht ist,aber ich hab das Gefühl
das da irgendne Bremse ist. Das ist ja keine Atom Home Büchse, sondern schon etwas professionielles, da sollte doch mehr drin sein!

Per NFS sagt der Graphh ein Zickzack auf und ab, grundsätzlich ist das auch "flott" aber da ist noch deutlich Luft nach oben!

Re: Nas4free geschwindigkeits Tuning

Posted: 14 May 2014 22:24
by b0ssman
nas4free läuft nativ und nicht in einem esxi?

hat der client eine ssd?

Re: Nas4free geschwindigkeits Tuning

Posted: 14 May 2014 22:46
by franky64
ganz normal usb stick gebootet, läuft also nativ.

Der Client für Windows ist ein Bladeserver, normal mit Festplatte gebootet, also keine SSD
Der Client für Linux ebenso das gleiche.

Re: Nas4free geschwindigkeits Tuning

Posted: 14 May 2014 22:50
by franky64
was sagt ihr denn zu meinen dd werten, und wieso sind die iperf werte gut, die realistischen Übertragungswerte eher nicht?

Re: Nas4free geschwindigkeits Tuning

Posted: 15 May 2014 03:24
by Princo
franky64 wrote:was sagt ihr denn zu meinen dd werten, und wieso sind die iperf werte gut, die realistischen Übertragungswerte eher nicht?
Joah, so langsam wird es kompliziert, denn du bist von meiner Empfehlung abgewichen, indem du das ZFSKerntune ausgeführt hast. :(

Damit hast du jetzt eine statische loader.conf erzeugt, die ein Update der FreeNAS-Firmware nicht übeleben wird.
ZFSKerntune sollte man so nicht mehr bei den neueren NAS4Free-Versionen einsetzen.
Was ich in viewtopic.php?f=29&t=5787&p=32277#p32277 beschrieben habe, war u.a. genau das, was ZFSKerntune macht, nur mit der aktuell richtigen Vorgehensweise (ich habe dort jetzt die Werte für 28GB ergänzt).

Die Werte sollten nicht mehr direkt in die loader.conf eingetragen werden, sondern nur über die enstprechende Sektion im Web-GUI.

Lies dir bitte mal diesen Thread durch: viewtopic.php?f=29&t=6540

Da hat jmd. exakt den gleichen Fehler gemacht, und nachdem er sich dann doch an die Anleitung gehalten hat, kam er dann auf 85MB/s mit CIFS/SMB.

Dort ist übrigens auch beschrieben, was du noch mit deinen Festplatten machen solltest (Werte für "Acoustic Power Management" und "Acoustic Level" jeweils auf Maximum setzen).

Eigentlich hatte ich dir hier viewtopic.php?f=29&t=6581#p36910 eine Step-by-Step-Anleitung gegeben, welche man nur nacheinander abarbeiten muß, um schrittweise und in der richtigen Reihenfolge die Gesamt-Performance des Systems optimal einstellen zu können.
Du machst gerade für jeden Schritt einen einzelnen Thread auf, und dabei geht dann völlig unter, daß eine Optimierung nur in einer bestimmten Reihenfolge belastbare Erfolge bingt.

Du wunderst dich jetzt, daß deine iperf-Werte so gut sind, und die "realistischen"-Werte so schlecht.

Wenn du ganz frische Festplatten im N4F verwendest, könnte es an den Einstellungen für "Acoustic Power Management" und "Acoustic Level" der Festplatten liegen. Die müssen mindestens einmal mit den Maximalwerten laufen. Erst danach kann man aussagefähige Speedtests mit den Platten machen.

Wenn ich mir aber deine Graphen so anschaue, dann liegen deine Werte nicht jenseits von Gut und Böse, sondern bewegen sich um die 50 MB/s, mit Peaks in den 100MB/s-Bereich. Sooo schlecht ist das erstmal gar nicht.

Dafür könnte es ein paar ganz banale Gründe geben:
1. Der sendende Rechner hat ein stark fragmentiertes Dateisystem.
2. Der sendende Rechner hat wenig RAM.
3. Es gibt ein Bandbreitenproblem im NAS (siehe Punkt 6: http://n4f.siftusystems.com/index.php/2 ... /comments/)
4. Und dann wäre da noch die "verhunzte" loader.conf
5. Der sendende Rechner "schafft" einfach nicht mehr.

Das ist eine Liste der derzeit wahrscheinlichsten Möglichkeiten. Die aufgeführten Punkte kann man abarbeiten, und damit das Problem identifizieren, oder gar beseitigen.

Grüße
Princo

Re: Nas4free geschwindigkeits Tuning

Posted: 15 May 2014 11:14
by franky64
auf die guten Ausführungen von Princo gehe ich im Laufe des Tages ein, aber beim Durchsehen aller Einstellungen sehe ich gerade
das die Festplatten mit einer Übertragungsgeschwindigkeit von 1,5G angezeigt werden, das ist doch sata1 Standard!?!?!

Die Transferrate in den Disk Einstellungen steht auf Auto, (default)

Wie ist das bei euch?

Re: Nas4free geschwindigkeits Tuning

Posted: 15 May 2014 12:09
by crowi
Bei mir zeigt er 6.0G an (Marvell Chip) aber Dein IBM controller sollte das auch können.
sata.png

Re: Nas4free geschwindigkeits Tuning

Posted: 16 May 2014 00:35
by franky64
So, bevor ich mich weiter ans Tuning mache muss ich versuchen herauszubekommen was da jetzt wirklich Sache ist, ich habe heute
2 Std vor Ort herumggedokert um ein Firmware Update des Servers zu machen, dies hat nicht geklappt. Da vermutlich kaum einer
tiefe IBM Server Kennnisse hat, insbesondere mit älteren x3650 Servern, gehe ich da nicht näher drauf ein.

Tatsache ist das in der Backplane, wo man die Platten einschiebt ein Sas Expander verbaut ist. Im Controller
Bios wird dieser auch angezeigt, und zwar sieht man dort "Vitesse 7160"
Google ist dazu nicht wirklich auskuntsfreudig. IBM auch nicht wirklich.

Tatsache ist jetzt das Nas4free mit jetzt Transfergeschwindigkeit 1,5 Gbit anzeigt statt 6 die ich gerne wollte.
Ich denke das ich hier auch ein Problem gefunden haben was bei mir ausbremst.

Re: Nas4free geschwindigkeits Tuning

Posted: 16 May 2014 01:24
by Princo
franky64 wrote:Tatsache ist jetzt das Nas4free mit jetzt Transfergeschwindigkeit 1,5 Gbit anzeigt statt 6 die ich gerne wollte.
Ich denke das ich hier auch ein Problem gefunden haben was bei mir ausbremst.
Nope, daran liegt es nicht, denn die Platten können noch gar nicht mit voller Bandbreite angesteuert werden, weil sich die Bandbreite ja auf mehrere Platten aufteilt.

Vereinfacht gesagt: Wenn du von deinem Client-Rechner eine große Datei auf das NAS kopierst, dann ist deine sendende Platte ein limitierender Faktor. Schneller, als die Platte sendet, kannst du nicht empfangen. Und natürlich ist das Netz noch ein viel engerer Falschenhals. Auf der Empfängerseite wird der Datenstrom auf vier (?) Festplatten aufgeteilt, d.h. die werden auch nur jeweils zu einem Viertel der Bandbreite ausgelastet.

Das ist natürlich sehr vereinfacht ausgedrückt.

Relevant wird die Bandbreite erst, wenn du später die NICs zusammenfasst.

Btw., in viewtopic.php?f=29&t=6581#p36910 hatte ich dir den Tipp gegeben, die Tests auch mal mit nur drei anstelle von vier Festplatten durchzuführen. Das hatte schon seinen tieferen Sinn. Es kann nämlich durchaus unterschiedliche Übertragungsraten bei verschiedenen RaidZ-Geometrien geben. Das hätte man so herausfinden können. Aber da kann ich wohl lange reden...

Grüße
Princo