Recommendation for which pool for System? boot-pool (SSD) or main pool (HDD)?

The GUI in Settings>Advanced>Storage gives you a choice for where to put the system. Do you get a noticeable speed benefit to using SSD for the system?

I have 16GB SATA DOM for my boot-pool and use RAIDZ1 HDDs for my main pool. Which should I choose for system dataset (it is just 2GB in size) and why? It’s currently using the HDD, but I’m thinking I’d boost performance by using the SATA DOM for system. This means more wear and tear on the SSD, but isn’t that negligible? On the other hand, if moving the system to the SSD isn’t noticeably faster, then I should keep it on the HDD.

I have 64GB of RAM. and I’ve only got 10GB in use, so it’s never touching the swap. Is there any reason to have the swap at all or should I only consider if I ever run out of RAM?

Any reason I shouldn’t use gdisk to partition my SATA DOMs? For example, with a single 16GB SATA DOM, it seems like the boot-pool and system combined don’t use up more than about 4GB. The amount of over provisioning depends on the workload. So if my system is on the HDD there shouldn’t be many writes to the SSD, so presumably I can reduce the size of the boot-pool partition to 8GB or even less?

Thanks for your insights.

Users will move their “System Dataset” to any non-spinning pool, such as the boot-pool or a dedicated SSD-only pool, simply to keep their servers quiet.

The main difference from Core → SCALE is that you can no longer choose which pool the system logs are written. (Core allowed you to store them on the same pool where the System Dataset resides[1], whereas SCALE always stores them to your boot-pool.)

  1. This also allowed Core users to “encrypt” their system logs, by keeping them in an encrypted System Dataset. Sadly, this ability is no longer possible on SCALE, without some unsupported tweaking. ↩︎


I am not really sure when swap will actually be used.

ARC will dynamically shrink to keep a small(ish) amount of main memory free for allocation, so I am unsure when Linux would be prompted to push memory out to swap.

(Before creating my HDD pool I set the Swap size to 0 in Settings>Advanced>Storage so that I do not have swap on HDD. I manually created a 16GB swap partition on part of the spare space on my boot SSD so that the system has some SWAP. The Memory reports show that this has never got used above c. 500MB - but I have no idea what does get swapped.)

Personally I would not reduce the size of the boot pool below 16GB. The spare space is likely to be used by TrueNAS for version upgrades.