Page 1 of 1

Primocache Recommendations for dealing with overhead on a complex system.

Posted: Sun Aug 05, 2018 5:58 am
by Syl
Hey there, I'm pretty new to Primocache and after having... complications... with Fuzedrive I decided to give this software a try as it seems a lot more malleable.

So, my setup is: Ryzen 1700, 32GB RAM
and the fun part:
1x 240GB NVME SSD for OS drive
1x 480GB NVME SSD for Cache drive
roughly 32 terabytes of data spread over 6 slow mechanical hard drives (mostly between 5400-7200RPM)

So. My OS SSD is the fastest, newest, *** drive in the system by a considerable amount, it's brand new with over 3GB/S read and 1.5 GB/s write. In short, my OS and only my OS and important files are on this drive.

My second NVME drive is slower (but still wicked fast at a supposed 2.4GB/S read speed) and it's what I want to use as my cache drive for the other 32TB of my system. It's technically in a PCI-E 2x slot instead of a 4x slot so it may be a tiny bit slower due to bottlenecking, anyway, that's not the point, it's gonna be a hell, hell of a lot faster than the mechanical drives.

So, all that space in my computer used for two main purposes. One is running a PLEX server, the second one is gaming.

So, with all that setup out of the way....

I've been trying to figure out the best way to use a cache. I need to keep roughly 20-24GB of ram usable by the system so that leaves me with 10ish gigs of ram to play around with for Primocache L1 cache.

All of my games are on a single 8TB drive.
I've tried just setting up the entire 480GB NVME drive as a L2 cache and set the entire 32TB hard drive smorgasboard as a single task in Primocache but the amount of overhead for ram use is ridiculous. 4.4GB of ram overhead for 32kb blocks, double that for 16kb blocks, for gaming I'd really like to be able to get things down to 8k or preferably 4k blocks, but I don't see any way to do that and still keep most of the 480GB space intact.

Also it attempted to use literally 100% of the space available on the drive and I want to keep at least 20% of it empty for overprovisioning and to not degrade read/write speed. Not too hard to fix this.

So I decided to break up the 480GB drive into different partitions for different things. 400GB for gaming, 20GB for plex, etc. but that leaves a LOT of the drive being unused. It does, however, massively reduce the memory overhead. I really don't need much ram for PLEX, maybe just enough to keep whatever current file is being played in the cache and it'll be good. I have no reason to fill up the cache drive with more static movie files as I don't expect many of them to be used repeatedly.

My most recent configuration is:
Cache 1: L1 cache 2GB at 4k blocks for my OS drive. Read only. Overhead for just this drive is basically nonexistant. Mostly doing this to help with wear and to reduce my boot time from a fancy 10 seconds to like, 9.1 seconds.
overhead: 250MB
Cache 2: L1: 4gigs, L2 Cache: 400GB at 16k for my game drive. Read only. Once a game is installed, it's installed and patches generally don't take that long to update. Most steam games save back on the OS drive anyway (and that's also where the main program is held.)
Overhead: 3.5GB (!!)
Cache 3: L1: 1GB, L2 Cache: 40GB at 128kb blocks for my plex server. Read/Write. Anything to help moving these files around faster is welcome, as I'm dealing with gigantic multi-gig files. However once they're in place they're pretty much set. I figure if I just COPY things instead of cut/paste I won't have to worry about data corruption in case something weird happens in transit.
Overhead: 660MB. (Ramps up ridiculously quickly, 1.3gb at 64kb, then 4gigs at 32kb, etc.)

So, this works out to 2.25+7.5+1.6 = 11.35 gigs of ram used. Which leaves me close to my needed 24gigs of ram usable, but not quite there.

Any idea where I could do some improvements or how I could better manage my space? Should I just massively short the amount of space I'm using in my cache drive and directly install games to it? (I'm actively trying to avoid this.)

Re: Primocache Recommendations for dealing with overhead on a complex system.

Posted: Mon Aug 06, 2018 7:39 am
by Support
Target volumes are too big, so you may use a bigger cache block size to reduce the overhead, especially in the cache#2.

Re: Primocache Recommendations for dealing with overhead on a complex system.

Posted: Mon Aug 06, 2018 7:36 pm
by Syl
Would that lead to any noticeable performance differences? I know that a lot of games have small and peculiar file sizes.

Also would it benefit me to format the Cache drive into a bigger block size or should I keep it at 4k?

I'm keeping my Cache #1 the same.

Cache 2: if I increase block size to 128kb I reduce the overhead to about 800 megs. Would it benefit me to have more RAM L1 cache or more overhead in the long run? If I reduce the block size I can noticeably increase the L1 cache, to 6 or maybe even 8 gigs.

I figure with Cache 3 I'll attempt 512kb cache, the files I'm dealing with here are generally between 1-40 gigabytes.

Does that seem like a more reasonable use situation?

Re: Primocache Recommendations for dealing with overhead on a complex system.

Posted: Tue Aug 07, 2018 4:05 am
by Support
In current versions, if the file system cluster size is equal to or greater than the block size, the cache read performance will be the best.
Syl wrote: Would it benefit me to have more RAM L1 cache or more overhead in the long run?
Yes, usually more cache space, better performance. This is because cache space can store more data.
Syl wrote:I figure with Cache 3 I'll attempt 512kb cache, the files I'm dealing with here are generally between 1-40 gigabytes.

Yes, if most files are big, a big cache block size shall be better.