Using an array of M.2 to cache for HDD array causes M.2s to fill continuously

FAQ, getting help, user experience about PrimoCache
User avatar
Support
Support Team
Support Team
Posts: 3731
Joined: Sun Dec 21, 2008 2:42 am

Re: Using an array of M.2 to cache for HDD array causes M.2s to fill continuously

Post by Support »

PhattMatt wrote: Fri Jan 31, 2025 2:06 pm This was already attempted prior to me posting this. The deferred blocks are only ever reaching %50 but that does not stop the pool from filling up even when the deferred blocks go back to 0.
I think you are confusing some things. Deferred blocks have nothing to do with the problem here. As a caching program, PrimoCache will always cache as much data as possible to provide maximum performance. Even if the deferred data in the cache is written to disk, it will not be evicted as long as there is free cache space. This is because the data can be served for reading when it is requested later. So generally speaking, the cache space will eventually be filled with data.

To solve the automatic offline problem of storage space volumes, you can reserve a certain amount of space in the L2 storage volume converted from a storage space volume, so that the storage space volume will never be full. See below picture.
Snipaste_2025-02-01_23-02-46.jpg
Snipaste_2025-02-01_23-02-46.jpg (16.82 KiB) Viewed 8655 times
Of course, here you need to create or rebuild the storage space volume to ensure reserved space is empty because your old storage space volume has already been filled with full data.
PhattMatt
Level 3
Level 3
Posts: 11
Joined: Sun Jan 05, 2025 6:38 pm

Re: Using an array of M.2 to cache for HDD array causes M.2s to fill continuously

Post by PhattMatt »

Support wrote: Sat Feb 01, 2025 3:01 pm
PhattMatt wrote: Fri Jan 31, 2025 2:06 pm This was already attempted prior to me posting this. The deferred blocks are only ever reaching %50 but that does not stop the pool from filling up even when the deferred blocks go back to 0.
I think you are confusing some things. Deferred blocks have nothing to do with the problem here. As a caching program, PrimoCache will always cache as much data as possible to provide maximum performance. Even if the deferred data in the cache is written to disk, it will not be evicted as long as there is free cache space. This is because the data can be served for reading when it is requested later. So generally speaking, the cache space will eventually be filled with data.

To solve the automatic offline problem of storage space volumes, you can reserve a certain amount of space in the L2 storage volume converted from a storage space volume, so that the storage space volume will never be full. See below picture.

Of course, here you need to create or rebuild the storage space volume to ensure reserved space is empty because your old storage space volume has already been filled with full data.
So even if the cache is set to %100 write its not evicting the data after its been written to the disk?
User avatar
Support
Support Team
Support Team
Posts: 3731
Joined: Sun Dec 21, 2008 2:42 am

Re: Using an array of M.2 to cache for HDD array causes M.2s to fill continuously

Post by Support »

PhattMatt wrote: Sat Feb 01, 2025 5:16 pm So even if the cache is set to %100 write its not evicting the data after its been written to the disk?
Yes. Because it's a waste to evict data for a caching program. Furthermore, evicting data from the cache does not mean clearing/releasing the corresponding disk sectors in the underlying disk unless you tell the underlying disk to do that.
Post Reply