This wiki is aimed at Home, family business and small business users without specialised network storage performance needs, but of course even these users want reasonably good performance e.g. to stream HD videos.
If you fit into one of these categories of users, this wiki page exists to:
Set your mind at rest that there is not a lot you need to do to TrueNAS to get good performance from it out of the box.
Remind you where to focus your efforts on improving performance.
If you are one of the above groups but have a specialised use case that needs particular performance, then this page should give you some further hints on where to focus and how to measure and tweak.
Home, family business or small business users with (say) no more than 5 simultaneous users
Non-redundant networking
Network file sharing for normal desktop applications and media streaming (and not e.g. video editing or iSCSI or performance critical VMs or apps)
The good news is that providing you follow the guidelines discussed on previous pages, TrueNAS and ZFS should perform pretty well out of the box, and you shouldn't need particularly powerful hardware to achieve great performance.
For example, Protopia Addams' TrueNAS server is a fairly low-powered box - a 2-core Intel(R) Celeron(R) J3355 CPU running @ only 2.00GHz and 10GB of memory - yet it can still run a few apps, achieve 99% ARC hit rates, fully utilize a Gb ethernet network and stream HD quality video.
But a few rules of thumb:
As previously outlined, it can often be the network which is the bottleneck - so focus your efforts there first.
Check your ARC hit rates - if they are below 99% then add more memory to your system.
Ensure that you are NOT using SMR disks - these are completely and utterly unsuitable for use in a ZFS-based system. Period!
If you think you have specialised performance needs (e.g. video editing, iSCSI, large numbers of users), then here are a few rules of thumb you should follow:
Do not bother trying to run read OR write performance benchmarks on your TrueNAS server because the results you will get will almost certainly be highly misleading.
An artificial benchmark will likely be completely different to your real-life workload
If you are trying to measure your server hardware performance, ZFS has a LOT of performance optimisations for both reads and writes, and even when you understand these in detail and try to eliminate them, it can still be VERY difficult to undertake a performance measurement which cancels these out and focuses in on the real hardware performance.
Ensure that your LAN is working at full speed end-to-end.
Do not try to tweak more performance out of a system that has not been designed to meet your performance needs in the first place.
Do not tweak ZFS settings unless you really understand what you are doing. The design of ZFS has been done with performance in mind, and the default tuneable parameters represent an excellent general balance across various types of workload. If you tweak the tuneable parameters without knowing exactly what you are doing, then at best it may have no appreciable effect and at worse it might easily reduce your overall performance.
Try to define in as much detail you can what your use case is and then ask for advice in the TrueNAS forums. Because it can be very difficult to change fundamental pool design or settings after it has been created, please try to ask for advice before you build and populate your server rather than afterwards.