Pool setup for Apps and VMs

I’m creating a separate pool to move my VMs and apps there. Currently I’m on TrueNas SCALE 23.10.2 (waiting to do that hardware upgrade and move before updating).

Hardware for that pool will be 4 x Samsung 990 PRO 1TB NVME drives in a mirror+stripe configuration. I’m looking for best performance so any advice would be much appreciated:

  1. Should I set it up through GUI or command line?
  2. Should I leave ASHIFT at default 12 or bump it up to 13 for best performance in my use case and hardware?
  3. Recordsize for Apps and VMs? Should I move it down to 16k or default it to 128k ?

Most likely not important for my question, but it might inform and change some suggestions if I share where I’m coming from.

Server is HP DL380 G10 with 2x Xeon(R) Gold 6132 and currently 128GB RAM (will be maxing it out soon).

Final architecture will be 2 pools, 1 for data that I already have and the second for services and VMs that I’m putting together now.

Data pool is:

  • VDEV 3 x RAIDZ1 | 4 wide | 14TB enterprise drives
  • Metadata 3 x MIRROR | 2 wide | 1TB Samsung 990 PRO

Since I use it mostly for content creation and big files I have it set to recordsize 2MB and because there are also a lot of smaller metadata files and previews/thumbnails, I redirect them to metadata special VDEV with Small Block Size set to 1M.

All of that was set up through GUI and I don’t remember any option to define ashift, so I guess its at the default 12. Please correct me if I’m wrong.