Thanks for the information!
I’d read that article previously, and has def a good walkthrough of ARC profiling. Looks like Proxmox does have arcstats as well. I’ve also been reading the OpenZFS source, which is both amazingly well documented, yet has 10k+ line source files
if you’re running TrueNAS Scale, you can see this info in the Netdata reporting. I’m not sure if Netdata is also bundled with Houston or Proxmox
Yeah … I’m such a homelab newb that this is the first I’ve heard of Netdata :). I still need to learn more about monitoring.
Do you know how multithreaded the process(es) is/are? Can it scale to more than the 6C/12T or whatever you have currently?
So I’ve got the HL-15 with a Xeon Silver 4216 on order & it end up with 384G Ram.
For reference the storage pool looks like the following (comments welcome!)
(this is assuming I can actually run a 4, 2 and 1 NVME ‘passthrough’ adapters on the 16x, 8x and 4x slots respectively)
- Main Storage: 7x raid 1 VDEVs (Sata III spinners), 1 hot spare
- ‘Special’ VDEV: 3x Mirrored 4TB NVME’s
- SLOG: 2x Mirrored 1TB NVME’s
- L2ARC: 2x ‘Sorta’ Raid 0 4TB NVME’s
You may want to do the pipeline processing against a RAID 0 area when and then move the results to a redundant pool when complete. If the process is highly stochastic and getting a lot of cache misses, making it bigger may not help much.
“redundant pool” is the key here, it would have to be basically the same size as the main pool, which I don’t have the budget for
Putting some thought into it, I think it may work with some tuning. As I mentioned there’s 2 things going on:
- Back to back ‘compiles’, basically forever.
- Periodic stochastic scans over a proprietary and essentially unbounded time series DB. This needs to run about once an hour for about 40 mins. 90% random reads, 10% sequential writes. Dataset is essentially a log, so it’s mostly static except the tip.
So if #1 were the only thing running on the machine, I think it’d be ok, assuming the working set fits into L2ARC (which is sized at ~2x the expected working set).
As far as I can tell, #2 is always going to be cache missing, and dispatching random reads no matter what. An all flash array would probably be ideal here, but it’s not in the budget The idea behind the Special VDEV was to try to soak up some of the IOPSs on the large number of small metadata source files.
The problem with #2 is that I am worried it may basically flood / thrash the cache with transient blocks.
However, I am thinking perhaps setting l2arc_mfuonly=1 might protect the L2Cache, due to the relative infrequency of #2.
… On a related note, I think I’ve been set up. My HL-15 req was approved last week. I just checked, and my next sprint seems to have a lot of tasks related to optimizing #2
Thanks again for the advice