I'm putting together a FreeNAS server for home use and I'm looking to tune the write cache to minimize stalls on continuous writes, and I'm having trouble finding the correct information for the latest release of FreeNAS 9.3.1.
My aim is to allow a steady stream of writes without lockups. It's preferable to have the writes see a gradual and smooth reduction in speed, rather than bursts of writes and a 4 second interruption.
To achieve this I assume I should tune the ZIL (reduce in-RAM portion) to hold an estimated 5 seconds (vfs.zfs.txg.timeout) of maximum wanted burst data writes. I also plan to add an SLOG (SSD) with a partition size in the range of 2-4 times the size of the ZIL.
My server will have one (potentially two) 1Gbps interfaces to the physical LAN, serving 2-3 clients, and it will run at least one Windows VM on the same host. FreeNAS will have access to somewhere around 12-20 GB of RAM, and my pool consists of 2x 4TB Seagate NAS HDDs. If performance is decent enough I will consider using the NAS to install and load games played from one of the other computers.
Everything I read says 1/8 of RAM is devoted to ZIL by default, which I expect will be much more than needed in my case. I understand that previously you could tune the size of the ZIL in RAM using vfs.zfs.write_limit_override.
Is FreeNAS 9.3.1, now that vfs.zfs.write_limit_override is deprecated, no longer allowing you to reduce the size of the ZIL in RAM?
Are there any official best-practice resources for tuning to avoid write stalling? On the forum I've been able to find mostly more or less random (and often futile) attempts at tuning parameters, with no real explanation of why and what the parameters do.
My aim is to allow a steady stream of writes without lockups. It's preferable to have the writes see a gradual and smooth reduction in speed, rather than bursts of writes and a 4 second interruption.
To achieve this I assume I should tune the ZIL (reduce in-RAM portion) to hold an estimated 5 seconds (vfs.zfs.txg.timeout) of maximum wanted burst data writes. I also plan to add an SLOG (SSD) with a partition size in the range of 2-4 times the size of the ZIL.
My server will have one (potentially two) 1Gbps interfaces to the physical LAN, serving 2-3 clients, and it will run at least one Windows VM on the same host. FreeNAS will have access to somewhere around 12-20 GB of RAM, and my pool consists of 2x 4TB Seagate NAS HDDs. If performance is decent enough I will consider using the NAS to install and load games played from one of the other computers.
Everything I read says 1/8 of RAM is devoted to ZIL by default, which I expect will be much more than needed in my case. I understand that previously you could tune the size of the ZIL in RAM using vfs.zfs.write_limit_override.
Is FreeNAS 9.3.1, now that vfs.zfs.write_limit_override is deprecated, no longer allowing you to reduce the size of the ZIL in RAM?
Are there any official best-practice resources for tuning to avoid write stalling? On the forum I've been able to find mostly more or less random (and often futile) attempts at tuning parameters, with no real explanation of why and what the parameters do.