Information

Suggestions around PrimoCache
sinus
Level 3
Level 3
Posts: 19
Joined: Sun Aug 20, 2017 10:24 am

Information

Post by sinus »

It would be very nice if PrimoCache could display information about the current use of the space allocated for the cache - how much the read data and write data actually occupies, how much irrelevant data is in the cache, which blocks can be replaced at any time by new write data, etc. This would help to properly configure PrimoCache.
User avatar
Support
Support Team
Support Team
Posts: 3623
Joined: Sun Dec 21, 2008 2:42 am

Re: Information

Post by Support »

PrimoCache can show basic information about the current use of the cache space by "Free Cache (L1/L2)". If the value is greater than 32MB, it means that the cache space is not full. At that time, if new data need to be cached, PrimoCache will use fresh new blocks. If the value is at 32MB, it means that cache space is full or almost full. At that time, if new data need to be cache, PrimoCache will replace some used blocks which store old cache data.
We don't want to collect too much detailed cache information within blocks because this will consume too much CPU time and affect the performance, especially in high IOPS scenarios.
sinus
Level 3
Level 3
Posts: 19
Joined: Sun Aug 20, 2017 10:24 am

Re: Information

Post by sinus »

"PrimoCache can show basic information about the current use of the cache space by "Free Cache (L1/L2)" - This information is too scarce. She does not give a detailed quantitative representation. To avoid increasing the load for data processing, it would be possible to include an algorithm for analyzing blocks only when the main window of the settings interface is open. When this window is closed, the user still does not need this data, and PrimoCache will work as usual.
sinus
Level 3
Level 3
Posts: 19
Joined: Sun Aug 20, 2017 10:24 am

Re: Information

Post by sinus »

"if new data need to be cache, PrimoCache will replace some used blocks which store old cache data". - Unfortunately, saving "Urgent" data slows down disk. It would be better to see trends and warn them, for example, by changing the "Latensy" value or playing with other settings of our favorite program - this is interesting.
sinus
Level 3
Level 3
Posts: 19
Joined: Sun Aug 20, 2017 10:24 am

Re: Information

Post by sinus »

To set and display detailed information about the contents of the cache, it would be possible to use the Command Line interface if you added the appropriate commands to it.
User avatar
Support
Support Team
Support Team
Posts: 3623
Joined: Sun Dec 21, 2008 2:42 am

Re: Information

Post by Support »

Thank you, sinus. Please note that PrimoCache is a block-level caching program, instead of file-level caching. This means that it caches volumes based on disk sectors, and don't have any information about files. It will cost much CPU time and process to retrieve/trace file information.
However, we do consider your requests as well as similar requests from other users, and will try to display more information about the cache.
sinus
Level 3
Level 3
Posts: 19
Joined: Sun Aug 20, 2017 10:24 am

Re: Information

Post by sinus »

support wrote: Mon Aug 19, 2019 5:26 am Thank you, sinus. Please note that PrimoCache is a block-level caching program, instead of file-level caching. This means that it caches volumes based on disk sectors, and don't have any information about files. It will cost much CPU time and process to retrieve/trace file information.
However, we do consider your requests as well as similar requests from other users, and will try to display more information about the cache.
No, no, you misunderstood, I'm not interested in files.
I will try to explain more simply. Take a look at the snapshot, please: I wonder how much PrimoCache is ready to provide immediately, without the "Urgent" write. Is it really (44 - 32) = 12Mb only ? That's all?
The Buffer mode should free the cache during the idle period. System now is in idle, why is there so little free cache?
Attachments
2019-08-19 232148.png
2019-08-19 232148.png (73.54 KiB) Viewed 4898 times
User avatar
Support
Support Team
Support Team
Posts: 3623
Joined: Sun Dec 21, 2008 2:42 am

Re: Information

Post by Support »

It is indicated by "Deferred Blocks". "Deferred Blocks" means that how many blocks are holding deferred write-data which haven't been written to target volumes. These blocks cannot be replaced and discarded till their deferred write-data are flushed to disks. Other blocks, here almost all blocks (100% - 0.0%), are ready to store new incoming write-data.
sinus
Level 3
Level 3
Posts: 19
Joined: Sun Aug 20, 2017 10:24 am

Re: Information

Post by sinus »

support wrote: Tue Aug 20, 2019 2:48 am It is indicated by "Deferred Blocks". "Deferred Blocks" means that how many blocks are holding deferred write-data which haven't been written to target volumes. These blocks cannot be replaced and discarded till their deferred write-data are flushed to disks. Other blocks, here almost all blocks (100% - 0.0%), are ready to store new incoming write-data.
Thank You.
Well. As Windows saves new and new data to disk, "Deferred blocks" will increase due to "Free Cache". What happens after running out of "Free Cache"? Why doesn't Buffer Mode free the cache as its algorithm describes it? Because the free blocks are over? Can Buffer Mode frees blocks occupied by Total Read data, or Buffer Mode be able free blocks that saved write data only, even In Shared (R/W) Level-1 cache blocks?
User avatar
Support
Support Team
Support Team
Posts: 3623
Joined: Sun Dec 21, 2008 2:42 am

Re: Information

Post by Support »

"Free Cache" just means that how much cache space is completely new (fresh new). When a cache space block is not used and doesn't contain any cached data, it called "Free". When it is used to cache data, it is not "Free" any more. When all "Free" blocks are used, that is "Free Cache" will show the value at ~32MB, PrimoCache will choose old used blocks and just replace their content by new data. It is not necessary to clean or release old used blocks first. So though you see "Free Cache" is at ~32MB, all blocks (except deferred blocks) are ready to be reused.

Now we step to the Defer-Write. If a block contains the deferred write-data, it's called "Dirty" (or "Deferred"). This block cannot be reused and replaced. "Deferred Blocks" indicates how many blocks are "dirty". After the deferred write-data is written back to target disks, this block is not "dirty" any more, and now it can be reused and replaced. However, we still don't need to clean cached data in this block, because if Windows or other applications request to read these data, they can be quickly retrieved from this cache block. That's why you see after flushing Defer-Write data "Free Cache" value does not increase, unless you tick the checkbox "Free Cache on Written".

Just keep in mind that "Free Cache" is an indicator to tell you how much cache space has data, but it does not mean how much cache space is occupied. PrimoCache can automatically reuse cached blocks by certain cache replace algorithm when the cache space is full of data.
Hope this helps.
Post Reply