Show recommended Dataset recordsizes for Apps and enforce them in ix-apps

The issue

Apps have different recordsize requirements irrespective of which install method you choose (ix-apps/host paths)

Below is a mocked up example, the recordsizes might be wrong for the type of dataset but that is my point, add this into TruneNAS for a much more streamlined experience.

  • apps
    • (128)
      • config (16)
      • data (128)
      • database (16)
      • logs (16)

Proposal

  • When you create an app and you use the ix-apps option, TrueNAS should set the correct recordsize for the dataset.
  • On the catalogue page you should show the recommended dataset recordsize for host paths.
  • In the installed apps you should also expose the various datasets and ix-apps folder’s recordsize so an admin can see if things are set correctly.
  • In the app wizard where you get to create a host path, you should also show the recommended recordsize and give the option to configure it.
  • Add a new recommended field to the app building process for each app’s host path.
  • The TrueNAS team should put together a table with recommended dataset recordsizes

What am I solving

if you do not set a dataset’s recordsize correctly this can lead to

  • read-write amplification.
  • excessive meta data
  • low performance server
  • excessive wear on your SSD/nVME
  • Not everyone knows the correct recordsize to use. I didn’t until recently.

yeah having the recommended recordsize called out in the ui would probably save a lot of people from the default 128k trap on apps datasets. in my experience the wrong recordsize only shows up later as weird perf, so surfacing it early feels worth it. not sure about hard enforcing vs just a loud warning though.