Edit 08.08.2018: Diese Anleitung wurde geschrieben, als NAS4Free Version 9 aktuell war. In den späteren Versionen wurde sehr viel am Speichermanangement verändert, und daher sollte man die hier aufgeführten Werte dort nicht übernehmen!
@JAD & @seller
Die nachfolgenden Schritte gelten für eine "normale" NAS4Free-Installation, ohne andere "Optimierungen".
Da ihr beide unterschiedliche RAM-Ausstattungen habt, gibt es auch einen Unterschied in den Parametern, daher kommt dieser Punkt zuerst, die nachfolgenden Schritte sind dann für euch beide gleich.
Basic Tuning
In System|Advanced|loader.conf sind folgende Werte einzeln einzutragen:
Für 28GB RAM
Code: Select all
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"
vm.kmem_size="22528M"
Für 16GB RAM
Code: Select all
vfs.zfs.arc_max = "12288M"
vfs.zfs.arc_min = "12288M"
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 = "14336M"
Für 12GB RAM (JAD)
Code: Select all
vm.kmem_size="10752M"
vfs.zfs.arc_min="9216M"
vfs.zfs.arc_max="9216M"
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"
Für 8GB RAM
Code: Select all
vm.kmem_size="6656M"
vfs.zfs.arc_min="5120M"
vfs.zfs.arc_max="5120M"
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"
Für 6GB (seller)
Code: Select all
vm.kmem_size="4608M"
vfs.zfs.arc_min="3072M"
vfs.zfs.arc_max="3072M"
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"
Die Werte sind einzeln mit dem + Zeichen hinzuzufügen, bei Name ist der String vor dem = einzutragen, und bei Value ist der Text nach dem = einzutragen (ohne Anführungszeichen).
Das war es auch schon mit den unterschiedlichen Einstellungen, der Rest ist für beide gleich.
Wenn eine Onboard-GB-NIC verbaut ist, dann sollte diese verwendet werden.
System|Advanced
Tuning:
kein Haken!
Power Daemon: Haken setzen
Power Mode: maximum (kann nach den Test auf adaptive gesetzt werden)
Services|CIFS/SMB|Settings
Authentication: Local User
Max Protocol: SMB2
Local Master Browser: Yes
(Edit)
Time server: No
In der Section Advanced Settings:
zuerst sämtliche Werte auf die Standardeinstellung setzen
Dann
Map to guest: Bad User - non existing users
(Edit)
Large read/write: Haken
EA support: Kein Haken
Store DOS attributes: Kein Haken
Null passwords: Haken
Asynchronous I/O (AIO): Kein Haken
(Edit)
Auxiliary parameters: die beiden folgenden Zeilen eintragen
Code: Select all
getwd cache = yes
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE
In der Section Services|CIFS/SMB|Share|Add
Es darf
NIE ein Share direkt auf /mnt angelegt werden!
Shares sollten für jedes Dataset einzeln angelegt werden, z.B. /mnt/Daten/Audio
(Man "kann" auch eine Share auf /mnt/Daten anlegen, aber das mache ich eher für administrative Aufgaben, und nehme dazu den Haken bei Browseable weg.)
Um jetzt einen halbwegs brauchbaren Geschwindigkeitstest machen zu können, legt ihr bitte ein neues Dataset an (z.B. "speed").
Bei der Anlage von "speed" lasst ihr alles auf den Standardwerten, bis auf
Extended attributes: Haken weg (die Einstellung hat sowieso keine Funktion)
Access Time (atime): Off
Owner: ftp
Mode: alles angehakt
Abspeichern, und eine Share auf "speed" einrichten.
Jetzt NAS neustarten, mit der neuen Share verbinden.
In die WebGui einloggen, und Status|Graph|System load anzeigen lassen.
Jetzt eine möglichst große Video-Datei auf die Share von "speed" kopieren.
Wichtig ist, daß die Datei möglichst groß ist (~10GB wären gut), und diese Datei auch tatsächlich einen Inhalt hat. Video-Dateien sind dafür am besten geeignet.
Wichtig!: Euer sendendes System (PC) sollte dafür vollständig defragmentiert sein. Der Test bringt mit frisch heruntergeladenen P2P-Dateien falsche Ergebnisse (weil die ganz heftig fragmentiert sind).
Wichtig!!!: Für diesen Kopiervorgang nehmt ihr bitte den normalen Dateimanager eures Betriebssystems. Keine anderen Lieblingstools!!!
Erstellt dann bitte einen Screenshot von Status|Graph|System load während der Kopiervorgang läuft, und postet ihn (beide Graphen sind wichtig).
Für den Test sollte das NAS und der PC frisch gestartet sein, damit Caching-Einflüsse das Ergebnis nicht verfälschen.
Stellt dann in System|Advanced den Power Mode auf "adaptive", und wiederholt den Test (vorher die Datei auf dem NAS löschen, und beide Systeme neu starten).
Dabei ist es normal, daß die Übertragung anfangs etwas langsamer ist, aber nach einigen Sekunden sollte die gleiche Rate wie bei "maximum" erreicht werden.
Sollte mit dieser Methode die Geschwindigkeit nicht signifikant verbessert werden, dann dürfte der sendende PC den Flaschenhals darstellen (Virenscanner, lahme Festplatte, etc.)
Viel Spaß beim Testen
Princo
Edit: Die obigen Techniken für loader.conf, Tuning, Power Mode und Dataset-Einstellungen, haben Einfluß auf die Gesamt-Performance des NAS (also auch für alle anderen Dienste, nicht nur CIFS/SMB).
Die Festplatten sollten beim "Advanced Power Management" und dem "Acoustic level" jeweils auf "Maximum Performance" gestellt werden.