Starting an app like Firefox or Obsidian takes very long, it is almost not possible from a zfs dataset. After 30 sec I stopped waiting.
I remembered that it was possible sometime ago (maybe 1.9.4?).
One reason was the recordsize. It was set to 1M. Setting it to 128K let the apps start but in double the time of starting them from hfs.
When I set primarycache to "all" then the apps start only a few seconds slower then from hfs. Even when recordsize is set to 1M.
The problem is that with primarycache set to "all" the apps start faster and even the history display in firefox is more agile but the performance of copying data ist bad. Almost half the performance as of when primarycache is set to "metadata".
I searched for the tunable that manages the meta-balance (and found it) but setting it to any other value as 500 (0, -1, 5000) didn't have any effect.
- Code: Select all
sysctl -w kstat.zfs.darwin.tunable.zfs_arc.meta_balance=500 (default)
But I also found this way the setting for the compression of the arc.
It showed an effect on the performance even when primarycache is set to "all".
But it uses more memory. For me it was more than 6gb used with more than 4gb reserved.
- Code: Select all
sysctl -w kstat.zfs.darwin.tunable.zfs.compressed_arc_enabled=0
Fiddeling with all of these and other settings on hand the performance varied sometimes a lot even with the same settings (don't know why), setting compressed_arc_enabled to 0 had the best effect on the performance overall.
Please try it yourself.
If it works for you, too, at least setting this tuneable might be a good compromise of getting a better performance while using primarycache, till the arc problem is solved.