Multiple SSD's for L2 cache Topic is solved

FAQ, getting help, user experience about PrimoCache
Post Reply
laserbait
Level 1
Level 1
Posts: 2
Joined: Thu Nov 05, 2020 3:37 pm

Multiple SSD's for L2 cache

Post by laserbait »

Is it possible to use multiple SSD's for L2 cache? I couldn't find any documentation saying if this was, or was not, allowed. Thanks!
User avatar
Jaga
Contributor
Contributor
Posts: 692
Joined: Sat Jan 25, 2014 1:11 am

Re: Multiple SSD's for L2 cache

Post by Jaga »

You can, but they need to be combined (per cache-task) using RAID. Primocache needs to see them as logically-presented volumes, like any Windows volume would be on a stand-alone drive. You can either use hardware RAID (MB or controller card), or Windows' software RAID implementation. If you plan on caching the boot drive, I'd recommend a hardware RAID implementation since it can help with boot times by allowing Primocache to start functioning during the boot.

If you are caching multiple target volumes (i.e. C: D: and E:) with multiple additional SSDs, you can instead dedicate a SSD per target volume if you'd like.
laserbait
Level 1
Level 1
Posts: 2
Joined: Thu Nov 05, 2020 3:37 pm

Re: Multiple SSD's for L2 cache

Post by laserbait »

Thank you @Jaga, that's helpful!
User avatar
Jaga
Contributor
Contributor
Posts: 692
Joined: Sat Jan 25, 2014 1:11 am

Re: Multiple SSD's for L2 cache

Post by Jaga »

You bet.
ffsb42
Level 1
Level 1
Posts: 3
Joined: Tue Nov 10, 2020 1:27 pm

Re: Multiple SSD's for L2 cache

Post by ffsb42 »

expending on the same question....


- it sounds like primo cache is flexible enough to allow you to setup any arbitrary fast disk partition as a a cache for any arbitrary slow-disk partition is that correct?
---- combine multiple SSD into 1 big cache through RAID0
---- split 1 fast-disk into 2 separate partitions which can be used to cache 2 separate slow-disks independently
---- combine multiple SSD into 1 big faster cache through RAID0, then split it into 2 separate partitions which can be used to cache 2 separate slow-disks independently.

I would assume that:
---- software RAID would drastically impact the performance of the caching compared to a proper H/W RAID.
---- obviously such options value proposition would depend greatly on the underlying hardware (RAM, nvme-gen4>nvme>ssd>hd), cpu(for software raid), use-cases,...)

- When you use RAM caching, can you share the RAM cache across multiple ssd/hdd caches?
- How does primo RAM cache compare to native windows 10 caching?
- Would you happen to have performed such kind of tests which would demonstrate the relative performances of these options?
- Can one easily create/destroy/change a given cache without having to destroy the HD disk since this is caching only?
User avatar
Jaga
Contributor
Contributor
Posts: 692
Joined: Sat Jan 25, 2014 1:11 am

Re: Multiple SSD's for L2 cache

Post by Jaga »

Pretty much all your assumptions are correct. Some clarifications:

- I'm not completely sure what the impact of soft vs hard RAID 0 has on the ultimate performance of the machine. That may be due in part to the performance of the CPU/RAM and how much free headroom Windows has for RAID calculations on-the-fly. Chances are good if you have a very well performing machine, you won't see much impact using soft RAID 0. If you're really interested in performance on a NVMe L2 however, I don't think I'd use soft RAID 0 with that type of drive. The IOPS overhead may unduly impact the drive performance with soft RAID.

- Native Windows caching is crap, always has been. Prefetch was always just a "let's go grab all the stuff we think has been used the most from a program/file level and toss it into memory in case it's needed". Primocache is much more predictive, and relies on the block level instead of the program or file level, which makes it even better.

- You can use different chunks of RAM for different cache tasks - it doesn't behave like drive volumes. i.e. you don't have to declare them, you just have to allocate RAM to a task and it's done, although it will need to populate as it goes (there's no forced or user-directed allocation at this time).

- You can use/re-use volumes assigned to the Level-2 cache without having to destroy/re-create the volumes. But any data in the cache at the time you re-assign the volume is lost, meaning it has to be re-built in the new Cache Task.

- The current L2 volume limit is 2 TB. You can't present a volume of a larger size than that to Primocache (>2 TB is a planned future feature).

- Cache Tasks can be created/destroyed on-the-fly, but any cached content is emptied from the cache and has to be re-populated again.
ffsb42
Level 1
Level 1
Posts: 3
Joined: Tue Nov 10, 2020 1:27 pm

Re: Multiple SSD's for L2 cache

Post by ffsb42 »

that's very interesting, when you mention that you do block level caching vs windows native file level. Do you mean that your cache tracks blocks loading patterns to pre-emptively try to anticipate which blocks should be cached before they are requested?
for instance, if for some odd reasons I were to watch the same movie every saturday, your cache would recognize as soon as I load the first block of the mpeg the fact that it should preload the following 600MB of blocks before I even ask?
User avatar
Support
Support Team
Support Team
Posts: 3623
Joined: Sun Dec 21, 2008 2:42 am

Re: Multiple SSD's for L2 cache

Post by Support »

This is called read-ahead. Windows native file caching does this. PrimoCache prefetches data based on statistics on disk blocks were read.
User avatar
Jaga
Contributor
Contributor
Posts: 692
Joined: Sat Jan 25, 2014 1:11 am

Re: Multiple SSD's for L2 cache

Post by Jaga »

ffsb42 wrote: Thu Nov 12, 2020 3:25 am that's very interesting, when you mention that you do block level caching vs windows native file level. Do you mean that your cache tracks blocks loading patterns to pre-emptively try to anticipate which blocks should be cached before they are requested?
for instance, if for some odd reasons I were to watch the same movie every saturday, your cache would recognize as soon as I load the first block of the mpeg the fact that it should preload the following 600MB of blocks before I even ask?
The cache tracks most accessed blocks (blocks are assigned size in the cache task parameters) and hold those in the cache. It won't prefetch on a per-use basis, it does prefetch (if enabled) at Windows boot time. It will then (as new blocks are accessed on the target drive) keep or release blocks in the cache to keep them in, or make space for more frequently used ones.

It won't go grab the entire movie file when you tell the software playing it to queue it up - if the blocks from it are in the cache from previous frequent use they will be used from the cache, otherwise it will send the software to the drive instead.

Primocache purely relies on blocks and accesses to determine what to cache - it never operates at the file level.
barzattacks
Level 1
Level 1
Posts: 4
Joined: Thu Dec 01, 2022 8:59 am

Re: Multiple SSD's for L2 cache

Post by barzattacks »

I am also using Primocache on my media server without an L1. I noticed as a computer on my network started viewing a 4k movie (which was 61gb in size) it started caching something. By the time I checked again the whole movie size was cached. It was the first event I did after creating the cache and I wanted to test what was going to happen. Now if for some reason whoever was watching did not finish the movie, when they call for it again it will be waiting on the L2 SSD.

So far so good.
Post Reply