Wednesday, November 9, 2011

FancyCache - How to use Ram as hard drive cache

Welcome to the last of these  ram caching mini series where i finally show you a great tool to further improve upon any windows caching system, as we saw in the  previous post here, we understand the improtance of using a newer operating system  such as 7 with loads of ram, so that everything is re read from ram, but if you are still reluctant to move on from xp  due to its small footprint, and have loads of ram to spare, you will love this program!

THIS IS WHAT FANCY CACHE CAN DO TO YOUR SYSTEM ITS AWESOME

(xp with loads of ram and slow hard drive, best case scenario)


FANCY CACHE - http://www.romexsoftware.com/en-us/fancy-cache/
A program created by the guys over at RomexSofware, still in beta development, it claims to better your system from the old Xp all the way up to windows 7, acting as a hard drive block sector cache, but how exactly does it acomplish it?

Operating Systems such as Windows Xp, buffer program executables into ram, later vista introduced pre fetcher but did a bad job loading useless files, while windows 7 got it right, caching the actual files that you access most during the day, but what if you could cache actual sector blocks from the hard drive? here is fancy cache fromt he word of its makers!


"FancyCache is a supplementary software caching scheme that cooperates with system memory to provide data caching for volumes/disks. It improves system performance by transparently storing data into memory such that future requests for that data can be served faster. FancyCache caches data on a logical block basis (offsets within a volume/disk) while windows cache manager caches on a virtual block basis (offsets within a file)."


In short this means that regardless of the windows version you are using,  hard drive logical blocks are cached into ram, which while not help windows 7 at first glance, i would improve greatly upon a system such as XP, and  more on this day and age where 4 Gigabytes of ram cost you  a measly 25 dollars!

As an feature the program can also deffer writes to the hard drive to further increase the speed of a system, so that if there is heavy traffic  where several files are been read and written at the same time, the phisical writes are kept in the fancy cache, while the system completes the read requests, from either the drive or the fancy cache, writing down changes  onto the hard drive once the read requests are over and /or it reaches a certain user defined timeout.

And as an added bonus the program can also claim and utilize wasted ram on 32 bit operating systems, technically breaking the 3gb barrier limit, and finally putting that extra gig of ram to good use! (but its always better to swtich to a 64 bit os when possible!)

Lastly it also works with HIBERNATION since the data is retained in a program that runs under windows, so next time you pop back from hibernationt he cache data is active and READY to work!


From the diagram above we can dissect a few things, on the first layer we see the operating systems, sending read/write requests to the disk/volume, on the second layer we see fancy cache interjecting and acting as a mediator relaying the read/write requests to the hard drvies below, totally trasnparent to the user, and here is where the magic happens, the hard drive seeks out and looks for data in the FAT table and the NTFS file structure of the hard drive, reading RAW  block sectors or data,  this is the slow first read,  the recent data is put on hold on the fancycache, and whenever there is a request sent out to the hard drive that matches the blocks in memory, they are then read out from the cache and not the drive itself, you have to keep in mind we are talking about block sector data and not files, this means the fat and drive tables , which a normal user never has access too get cached as well!, this is somethign not even windows 7 can do!

One thing of importance to mention the fancy cache will only store and keep as much data as ram you  allocate it with, that means that if you have a few megs/gigs of ram that go genneraly unused on your system, that is about how much you should give to fancy cache to work with, but make sure you do leave a good chunk free, because unlike superfetch, whatever ram you give to fancy cache will not be given back and you could also run out of ram!but fear not fancy cache can be turned on and off on the fly!!!


Download and Install - choosing the right version for you!

Downloading the Beta over here at the bottom at the page will lead you with 2 versions to choose from  Fancycache for Volume or Disk,  this can be tricky due to that you can choose to cache the read writes from an specific partition from the many that you may have, this is kinda specific, while the disk version caches every single read and write that goes to the phisical whole drive regardless of its partitions, in my opinion choose fancy cache for disk as it suits most enviroments

FancyCache for Volumes: to cache an specific volume/partition of the many you might have
FancyCache for Disk: to cache all requests from an entire hard drive regardless of its partitions

Caching Type - LRU or LFU?
Theres two algorithms as to how the data stored int he cache will be flushed out, because at some point, we will fill it, the two algorithm break down in LRU and LFU;

  • LRU (Least Recently Used): discards the least recently used data first.
  • LFU (Least Frequently Used): counts how often a data block is needed. Those that are used least often are discarded first.
Personally i recommend you to go with LRU, because this will keep the most recent used data blocks in the cache, your open browser, game and program and the files its accessing will be always ready for you, and if you do happen to access or open a rare program/file/song it will be cached if there is enough room or after discarding blocks that you havent used in the past minutes/hours, while in the case of LFU it will discard whatever files you use less often, the problem can arise if you are workign on a big project and are listenign to music or accessing optional files, and if your work is put on the back burner, it could be  flushed out of the cache after a while, even if the recently opened files are not a common ocurrance, as always it can be case specific, for gaming/editing video/images ive found  LRU to be better

DEFERRED WRITE CACHE? - Care full with this one!
This basically holds up the write data in the fancycache, indefinetly until a certain preset timeout is reached, this is great fo wrtie intensive applications, to diminish the wear of hard drive and even the write cycles for Soli state disks, as you are writting on to the cache and not the hard drive(while windows thinks it is) again this is case specific and not for normal users becuase IN CASE OF POWER FAILURE block data CAN BE LOST, rendering the partition USELESS or with huge CHUNKS OF DATA MISSING, so stay away from this UNLESS YOU GOT AN UPS, or dont care for corrupted data in case of a damned Blue screen of death caused by something else.


Fancy Setup - choosing how much ram you want to use as cache
This is an important step, but one that you can correct if you miss calculate due to the programs ability to stop/pause and recreate the cache as many times and as often as you like, your free ram is the limit!! and as such, you have to understand  how much ram is wasted/free for use

 2-4 GB cache for a 8GB system is awesome!
(check below to proper config)

First of all we have to establish the footprint of our system that can vary from  system to system, if you have a system with 2 GB of ram or less, fancycache might not be really the thing for you (but even a 100mb cache can do wonders) since most windows need around 600mb (xp) and 1.2gb (vista/7)  of ram to "work properly" and you have to take in account the ram needed for your programs, as a rule of thumb, heavy 32 bit program such as games and editing applications can ONLY allocate as much as 2GB of memory each, so if you are a serious gamer, or video/image editor you have to save 1.5GB at least per program you intend to keep open at all times (image designers often have 2-3 photo editing programs at the same time!), THIS IS WHY 4GB of ram is the SWEET spot for most computers at the moment "2 for windows 2 for the other program you use"

An easier way to check on your "free" ram is to load up whatever programs and files you need  work with daily, to really see how much ram you really need, you can then do a quick CTRL+SHIT+ESC to open up the taskbar (i bet you didnt know that one :O) in xp's case we have to check on the performance tab, at the physical memory place, that is the total, and on the left side where it says usage, its how much we are using, this picture shows a system with 1GB of real ram and 500mb used trough pagefile, not a good candidate for fancycache(but an example on where to look for the free ram)
 
 hopefully  your PF usage is much lower than the TOTAL  value! if not go buy more ram now!

In windows vista/7 we need to check the Resource Monitor in the taskmanager, where we can see how much windows is using, and how much is "wasted" on superfetch, remember we are use that ram in a better way!

disregard whatever value super fetch (in blue here) is using, this is windows pre caching files that you might use at a file level, feel free to count that as "free" ram for fancy cache!

You can clearly see, that i have 4GB of ram that are truly Free, i have mounted and loaded the pletora of programs that i often use web browser with many tabs open, music player, messanging applications, i am a gamer and i dont have any game loaded, but i will sure WANT to save at least 2GB of ram for whatever i will play at the moment, so that leaves me with 2GB of ram, which windows usually takes up with its superfetch, so i give FancyCache full access to those remaining 2 free GB, dont worry if windows cant superfetch stuff, we are using a BETTER caching system now! (you can even DISABLE superfetch completly but thats for another lesson)


So now its all set up and working but how does it actually help your system you might say, well the truth is that after many tests and benchmarks i can tell you that on a windows 7 system you will not notice much of a difference since windows 7 was doing a good job at prefetching and caching critical often used files, BUT there are specific tasks and situations where fancycache will speed up even windows 7, mostly the tasks that have to do with hard drive sector block reading and severe   file access (defrag/virus scan/patching up games/compressing files), but  i wrote this article with windows XP in mind but even so, you can run some tests to verify that fancycache is working!.. so we turn to CrystalDisk Mark a tool often used by many websites to measure the speed of hard drives!

Crystal Disk Mark - http://crystalmark.info/software/CrystalDiskMark/index-e.html
A tool often used to measure hard drive speeds, by default makes a series of 5 read/writes cycles with a 50mb test file,  sequential by 512k blocks  and 4k blocks, the ideal situation is reading a big chunk file, but often windows reads/wrties a pletora of littel tiny files (4k) this is where fancycache can speed up things!!

a generic result on a generic hard drive, strangely  my drive is faster at writing.. but 55Mb/s is slow

But after activating fancy cache, the results speak for themselves  reading off the cache, you reach a theoritical speed of 2500MB/s which is the brute ram speed, note that in this test i ALSO ENABLED deffered write cache, if you just enable normal read/write cache the results on the write column will mirror the ones of the uncached test. remember that normal read/write algorithm just queues the write cycles after the read ones, it doesnt truly cache writes as good as deferred mode.

Fancy cache in action on a windows 7 system, showing its strenght - DEFERRED write is on on this test, without the write results would mirror the first test 

Passmark Performance Test - http://www.passmark.com/products/pt.htm
Another tool used by many sites to measure the speed of a computer, here i go into the Drive benchmarks and run some tests this first run done with fancy cache turned off...

And then with fancy cache on , deferred write is OFF, you can see the read increasing from 70mb to 1259 mb/s diferent programs yield diferent results as some count a megabyte as 1024bytes or 1000bytes.. regardless you can see there is a huge boost!
And a File benchmark  test on HD tune, with deferred write on, the resutls are crazy, the program was never designed to handle values avobe 1000 mb/s   the ruler on the left  reach up to 3,000 , the performance reaches  just below 2,500 mb/s

If you havent Already, check out the Video at the start of this article, its a test i conducted on a Windowx XP 64bit system, with 8GB of ram and a dual core 3.2ghz processor , the hard drive in question is an old 250GB seagate drive with a 50mb/s read/write  performance, this is the best case scenario for fancy cache , as it complements a system with loads of ram with a block sector cache to circumvent the slow speed of the hard drive!.. i JUST LOVE FANCYCACHE!

I know there are severla programs out there that promise to boost up and use ram as cache, but these are just propietary versions of windows 7 super fetch, Fancycache is truly an innovation , and hopefully they will come out of beta testing and come out with a great product that is already solid on my tests!

I hope this article helps speed up your computing experience and may you have loads and loads of ram to spare, and as always have a backup of your precious data!, until next time! thank you :D

14 comments:

  1. I really needed this knowledge, thanks

    ReplyDelete
  2. wow thats a pretty nice post! very specific! ty :)

    ReplyDelete
  3. Interesting, really nice work :)

    ReplyDelete
  4. An amazing post! this is super handy, thanks for sharing!

    ReplyDelete
  5. Wow, nice info.Will come handy someday.

    ReplyDelete
  6. very informative post. Keep writing more articles like that.

    Btw, what is happening to CE, please inform me via comment or email me to Brian.jerimy@gmail.com

    ReplyDelete
  7. This is some very solid data. I'm sure it'll come in handy at some point, so thanks!

    ReplyDelete
  8. Awesome! I didn't knew about this... very useful info! Thanks :D

    ReplyDelete
  9. You always have usefull stuff here. That's why I love your blog, man. :)

    ReplyDelete
  10. Definitely going to use it on my older laptop :)

    ReplyDelete