1Tb SSD Level 2 cache for gaming?

FAQ, getting help, user experience about PrimoCache
Post Reply
Verdin
Level 1
Level 1
Posts: 2
Joined: Sat Apr 20, 2019 7:03 pm

1Tb SSD Level 2 cache for gaming?

Post by Verdin »

Let me start by saying I think Primocache is an awesome program and seems to be more than worth the $30 licensing fee. After the testing I've already done with a spare small SSD, I'd like to see if I can get a bit more bang for my buck.

Being a complete noob, I've scoured threads here as well as other sites that have content related to Primocache, and a fair amount of the technical information I've read has gone right over my head. So I was wondering if someone could answer a few questions...

I know I could just load some of the games/VMs directly onto a SSD, but would it be worthwhile to use a 1Tb SSD to cache all of my fps games and virtual machines that are located on a 3Tb HDD? I play a fair amount of games that utilize texture streaming, which seems to cause stuttering when loading from a HDD.

If I use that SSD to cache the HDD, will it still essentially fill the SSD if there's well over 1.5Tb of games and virtual machines?

When it comes to the L2 cache block size, does it have a significant effect on read speed of the cache? For example, the 3Tb HDD is formatted at the Windows default, so should a larger cache SSD be set to the same block size (4) or something larger like 16 , 32 etc... ?

Lastly, I've seen some conflicting information when it comes to persistence. I don't leave this rig running 24/7, so would the SSD caching essentially be pointless or significantly less effective if the PC is shutdown periodically?

If it helps at all, I'm trying to squeak every last bit of performance I can out of a low budget build that consists of a i5 4690k, 16Gb of DDR3, GTX 1070, 240Gb SSD for the OS, 3Tb HDD and a 1Tb SATA SSD.

Thanks for your time.
neatchee
Level 5
Level 5
Posts: 49
Joined: Tue Feb 12, 2019 8:38 pm

Re: 1Tb SSD Level 2 cache for gaming?

Post by neatchee »

You basically have my old build :D

Answering your questions in order:
Would it be worthwhile to use a 1Tb SSD to cache all of my fps games and virtual machines that are located on a 3Tb HDD?
Absolutely yes. As much yes as I can convey :) PrimoCache will help make sure that your most frequently accessed files are stored on and retrieved from the SSD instead of the HDD

If there are things you use frequently on that drive that you DON'T want to be cached over things like games, you may want to consider shrinking the existing partition and creating a second partition for "not-cached". That way you can tell PrimoCache to cache the existing partition with your games and it won't also cache things you put on the second partition.
If I use that SSD to cache the HDD, will it still essentially fill the SSD if there's well over 1.5Tb of games and virtual machines?
Eventually, yes. It will fill the cache with the things you access the most frequently (read or write or both depending on how you set it up). More or less, once you've accessed 1TB of data, a copy of that data will be on the cache. From there, PrimoCache will decide what to put on the cache based on frequency of use.
When it comes to the L2 cache block size, does it have a significant effect on read speed of the cache?
It can, depending on your usage patterns and types of data you're accessing. In general, you want the block size of your cache (and, for that matter, the block size of your storage!) to be a best approximation of the segmentation of the data you're storing on the drive. In layman's terms that means: If you never have a file that's less than 64kb then you'll benefit from a block size that's 64kb.

I have a cache task that is specifically for my games drive as well. I set my block size to 128kb because the majority of what games store and read is large textures. That's the bulk of the work in loading games, so we're talking big files. The smallest textures are usually more than 128kb.

If you're using same cache task for your VMs that changes things. A VM will only really read in the main image once per launch; after that access is based on usage and how block storage in the VM is set up (single pre-allocated shadow file on the drive? Direct disk access from the VM? etc)

Hope that gives you a good understanding of what you're working with! :)
Verdin
Level 1
Level 1
Posts: 2
Joined: Sat Apr 20, 2019 7:03 pm

Re: 1Tb SSD Level 2 cache for gaming?

Post by Verdin »

neatchee wrote: Sat Apr 20, 2019 10:51 pm
Absolutely yes. As much yes as I can convey :) PrimoCache will help make sure that your most frequently accessed files are stored on and retrieved from the SSD instead of the HDD

...

I have a cache task that is specifically for my games drive as well. I set my block size to 128kb because the majority of what games store and read is large textures. That's the bulk of the work in loading games, so we're talking big files. The smallest textures are usually more than 128kb.

If you're using same cache task for your VMs that changes things. A VM will only really read in the main image once per launch; after that access is based on usage and how block storage in the VM is set up (single pre-allocated shadow file on the drive? Direct disk access from the VM? etc)

Hope that gives you a good understanding of what you're working with! :)
Thanks for taking the time to respond Neatchee.

The block size is what I'm still not sure about. I'll probably have to do some testing, as every ones' PC and utilizations are different. All of the fps games make heavy use of textures like you stated, and many are built on versions of the Unreal Engine that uses "containers" for cooked files. The virtual machines are created as pre-allocated size single files in VmWare and Qemu that are unaware of the Host OS, though I'm not sure what you mean by shadow files or direct disk access?

On a separate note, I understand some out here might think I'm nuts for using such a large SSD as a cache (because I could just load up as many games and VMs on it as I can and reap the benefits of the SSD performance) which would indeed be the norm. However, I was contemplating doing this to possibly get more efficient use of the SSD. Obviously not all of the games/programs from the HDD will fit on the SSD in their entirety, but I thought I could still get at least a partial benefit of performance by some of the files from all of the games/programs being cached and read when needed.

If I'm misunderstanding how Primocache works, I'd hope someone will correct me.
neatchee
Level 5
Level 5
Posts: 49
Joined: Tue Feb 12, 2019 8:38 pm

Re: 1Tb SSD Level 2 cache for gaming?

Post by neatchee »

Your understanding of PrimoCache is fine :) Yes, over time it will build up a cache that reflects your usage and accelerates the most frequently accessed data. Using it with a large cache isn't crazy at all!

Re: VMs - In my experience, storage in a VM can be set up either as a fully allocated virtual drive (i.e. it creates a big file that acts like a harddrive in the VM) or with direct access to the host filesystem (or subdirectory of the it)
User avatar
Support
Support Team
Support Team
Posts: 3623
Joined: Sun Dec 21, 2008 2:42 am

Re: 1Tb SSD Level 2 cache for gaming?

Post by Support »

@Verdin, regarding the block size, when it matches the target volume's file system cluster size, caching will have the best read performance. However, if the block size is too small, it may cause lots of memory overhead which is used for maintaining the cache task. PrimoCache will show the estimated memory overhead on each block size.
neatchee
Level 5
Level 5
Posts: 49
Joined: Tue Feb 12, 2019 8:38 pm

Re: 1Tb SSD Level 2 cache for gaming?

Post by neatchee »

Side question for @support:

If the L2 Cache block size is larger than the target volume's cluster size, will files above the volume's cluster size be aggregated into the larger block size in the cache?

e.g.:
Target Volume Cluster Size: 4KB
Cache Block Size: 64KB
File size: 2,048KB
Question: Will each cache block contain 16 target volume clusters? And will a request for all 16 clusters be returned from the cache as a single read operation of the entire block?

This is what I would expect but I've never asked explicitly :)
If yes, then setting a large cache block size for a target volume will still be beneficial IF the data that is most often in the cache is for files that are larger than or equal to the cache block size I think?
User avatar
Support
Support Team
Support Team
Posts: 3623
Joined: Sun Dec 21, 2008 2:42 am

Re: 1Tb SSD Level 2 cache for gaming?

Post by Support »

When populating L2 cache, PrimoCache will fetch the whole block data from the target volume. This design is to maximum utilize L2 cache space. So,
neatchee wrote: Tue Apr 23, 2019 7:17 pm Question: Will each cache block contain 16 target volume clusters? And will a request for all 16 clusters be returned from the cache as a single read operation of the entire block?
Yes, and yes.
neatchee wrote: Tue Apr 23, 2019 7:17 pm If yes, then setting a large cache block size for a target volume will still be beneficial IF the data that is most often in the cache is for files that are larger than or equal to the cache block size I think?
Yes, that's true. But to get the best sequential reading speed, a matched block size is recommended. If your files or data access pattern are mostly in large size, you may format the partition by a larger cluster size. And then using a matched block size for the cache.
neatchee
Level 5
Level 5
Posts: 49
Joined: Tue Feb 12, 2019 8:38 pm

Re: 1Tb SSD Level 2 cache for gaming?

Post by neatchee »

Very cool! Thank you for the answer.

I have close to 1TB of data that is mostly large files, and usually requests are large sequential reads. I should have set a larger cluster size when creating the partition but it is 4kb (windows default).

I'm procrastinating on backing up the data, changing the block size, then restoring the data. :)
ferrari
Level 4
Level 4
Posts: 27
Joined: Fri May 17, 2019 3:40 am

Re: 1Tb SSD Level 2 cache for gaming?

Post by ferrari »

I would install windows onto a 250gb partition of the ssd and all the apps and games onto the mechanical drive formated with a 32k cluster size to reduce overhead. Then I'd use a 32k block 500gb partition of the ssd to cache the mechanical drive.
I find if I make the primocache block the same as the hard disk cluster size I get 95% of the native ssd speed. With a bigger primocache block size than cluster size it seems closer to 80% native ssd speed.
Post Reply