Some questions & suggestions...

FAQ, getting help, user experience about PrimoCache
Post Reply
szucsati
Level 2
Level 2
Posts: 9
Joined: Tue Jan 21, 2014 1:15 am

Some questions & suggestions...

Post by szucsati »

Hi,

I think PrimoCache is a great piece of software. I would buy it right now and I hope Romex will not make the mistake and try to sell it for the price of a decent size SSD :). I'm tempted to buy a 32GB SSD for my parents' new(ish) machine, only thing holding me back is that I don't know the price yet. Hope it will not be more expensive than the Ramdrive Pro. I like the fact that there are two versions now, this means Romex have some ideas already :).

I have not been able to test the latest version (0.9.8) which contains some promising features I wished for, but I've been testing the previous one for a while. The main test was a virtual machine sitting on a spinner plus some games. Results are very promising! Now, I have some technical questions, for which I have not managed to find answer.

- What is the recommended safe way to use defer-write? Although as we have CLI now, it is probably to use battery backup and run dwpausewhen the computer switches to battery. This needs manual setup, it would be nice to see such a feature built in. This would significantly improve the safety, wouldn't it? Only on BSOD, and force reset / shutdown would the cache content not be written on the disk.

- How does the LFU-R work exactly? Is there an expiry time for the data? Like if I read a file 1000 times a year ago, but not once since that, would it still be sitting on the L2 cache? In this case it might be useful if we could set two different modes for L1 and L2.

- How would one notice if there's an inconsistency between the drive and L2 cache? Would it make file reads corrupted and / or crash the computer if it happens to be a system file? Is there any method that tries to heal such an issue?

- It is not recommended to use L2 for a volume which is modified "offline", when using dual boot because it would cause inconsistency, which is clear. But what happens if one sets up the exact same L2 cache (original drive and cache storage) on both dual booting systems on the computer? Would it work fine?

- 4K is the recommended size for the cache blocks for performance, but what happens when the cluster size is larger? I use 64KB cluster for the NTFS volume on my 1TB hdd, tests seem to show some performance improvement when using 64KB. I guess the cache is block-based, therefore the recommended size would be the cluster size (and maybe set automatically).

- What is the point of using write cache when defer-write is not enabled? The only thing I can think of is that this way when a file is saved, it is written both to the cache and on the hard drive, so if I wanted to open it after saving, it would come straight from the cache. Otherwise it only happen when opening the file for the second time after saving it.

- What happens when defrag is used on a cached volume? It seems like in this case basically everything is written to the cache and read back from there (giving the SSD quite a lot of writing cycles). I paused the cache when running defrag, it seemed to empty the cache basically (no wonder, the blocks have changed), but worked fine after resuming the cache. Is there a way to detect if the system is running defrag? Maybe the cache should be paused in this case. Otherwise the CLI might help in a batch command...

- Some defrag tools (like Defragger) has the option to do offline (boot-time) defrag. Would it run after of before PrimoCache kicks in?

- It would be nice to see the L1 & L2 and total hit ratio as well on the graph. Although now as L1 is written to L2 when the system is idle, it doesn't seem to be that important.

- I'm thinking of using USB 3.0 sticks instead of an SSD drive. Do you think they are ready to manage it or they would wear out quicker than SSD drives?


Thanks, and keep up the good work!
InquiringMind
Level SS
Level SS
Posts: 477
Joined: Wed Oct 06, 2010 11:10 pm

Re: Some questions & suggestions...

Post by InquiringMind »

Welcome to the forums Szucsati - I can't answer all your questions, but can make some suggestions:
szucsati wrote:What is the recommended safe way to use defer-write?...Only on BSOD, and force reset / shutdown would the cache content not be written on the disk.
This depends on what you mean by "safe". If you have valuable data and/or BSODs are a common occurrence, then the only safe choice is to keep write defer disabled. If you keep regular backups and have a stable system, then a low value (the default 10 seconds) should be OK.
szucsati wrote:4K is the recommended size for the cache blocks for performance, but what happens when the cluster size is larger? I use 64KB cluster for the NTFS volume on my 1TB hdd, tests seem to show some performance improvement when using 64KB. I guess the cache is block-based, therefore the recommended size would be the cluster size (and maybe set automatically).
4KB is the default cluster size on NTFS volumes, though as you and others have found, performance is improved when using a larger blocksize. The best size will depend on system configuration - larger blocksizes mean smaller indexes (and faster checks to see if data is cached or not) but potentially more wasted read/write activity. SSDs add the complication of having larger write/erase blocks but I don't know if PrimoCache takes account of those when writing.
szucsati wrote:What is the point of using write cache when defer-write is not enabled?
Better burst mode performance - e.g. if a program wants to write 1GB of data, PrimoCache can accept that data (at much higher speed than the underlying disk) and write it to disk while the program does something else.
szucsati wrote:What happens when defrag is used on a cached volume? It seems like in this case basically everything is written to the cache and read back from there (giving the SSD quite a lot of writing cycles).
Microsoft provide a defragmentation API which virtually all defragmentation software uses. It should be possible for PrimoCache to detect this and avoid interfering with defragmentation, but I don't know if this happens - pending confirmation from Romex, suspending cache while defragging is the safest option.

SSDs should be defragged infrequently though, and using an algorithm designed to minimise writes. MyDefrag includes a Flash defrag option, but even this is only recommended on a monthly basis.
szucsati wrote:I'm thinking of using USB 3.0 sticks instead of an SSD drive. Do you think they are ready to manage it or they would wear out quicker than SSD drives?
USB 3.0 has 5Gb/s bandwidth (though USB 3.1 doubles this) while SATA 3.0 offers 6Gb/s. The fastest SSD drives available (500MB/s) would be (slightly) limited by USB 3.0 (5Gb/s gives 500MB/s) so SATA (and eSATA) would be a better choice for performance. Wear/lifespan is determined by flash type (MLC versus SLC, see http://www.oempcworld.com/support/SLC_vs_MLC.htm for more info) and usage, not by interface so the choice of USB 3.0 or SATA is irrelevant here.
Post Reply