Running development from a RAM disk – options and products
In my post about ditching the Solid State Drive in favor of the RAM disk, I mentioned the speed increases. Taking away the IO bottleneck is significant, and it can let us turn our attention to other bottlenecks that remain. Here, I am going to outline what I’m currently using, what I’ve tried, and some steps to get it all working.
If your Windows OS is already paging to disk because of a lack of RAM, then using a ram disk doesn’t make much sense. You must have unused RAM. I tried Vista SuperFetch for almost a year, and while it did fill up all available RAM, I still didn’t see the machine fly. Allocating a RAM disk with my surplus of RAM did make the machine move much quicker. I’ve looked at SuperCache and SuperVolume from SuperSpeed, but those products are only offered for Windows XP. They seem very promising because SuperCache does a delayed write on the entire boot drive and uses RAM as the primary IO resource.
My workstation (and that of all of my employees) is: Dell Precision M4300 laptop (2.x GHz dual core proc, 8 GB RAM, Seagate 7200 hard drives)
I was able to get 4GB RAM sticks from memory-up.com for less than $160 each.
I tried out SuperSpeed RamDisk Plus as well as DataRam RAMDisk. Both products can support the size of the RAM disk that I need (3GB). Both products automatically persist the contents of the RAM disk to the hard drive upon shutdown and restart, so there is a seamless experience with both. Because I’m using these in a laptop scenario, a sudden power outage is unlikely, and all the stored files are working copies of Subversion, where commits happen multiple times per day.
Ultimately, I’m currently running DataRam RAMDisk not because I see it as materially superior to SuperSpeed’s product, but because it gives me what I need for a lower investment. RamDisk Plus gives me much more than I need; therefore, I would be paying for unneeded features. I used both, and both are easy to use. RamDisk Plus is about $100 for a Vista x64 license, and DataRam’s RAMDisk is free for the size I need, which is <= 4GB. You have to pay for larger.
With DataRam RAMDisk, you can format it yourself, so that’s what I did by formatting it as NTFS with Disk Manager. You can see that I’ve mapped a 3GB RAM disk to the R: drive.
I have also mounted it inside the C:\ drive so that I can access it quickly from WINDOWS+R:
I did this through the Disk Manager’s mount points:
My final step was to set SQL Server to use the RAM disk as its disk for newly-created databases. Our line-of-business applications are IO intensive including database interaction, and the automated tests are especially so.
All-in-all, the setup is pretty simple regardless of which RAM disk product is used. I love the speed improvement it has given the workstations. Obviously running less stuff in an automated build will make it run faster, but there are some things that just MUST be run in a first-line build, and that build must remain fast. Besides the build, even compilation and working inside Visual Studio is quicker because all of the files are in RAM.