I had some folks from our .NET development team come to me with a problem today – their ASP.NET code was taking forever to recompile after updates to the code base. But these guys are cool – they came with a proposed solution (most people who grace my office door are simply dropping off problems). Their solution? A RAMDisk mounted in a VMware Windows guest. I give them credit for a novel approach, but I could see some issues:
- What would happen if the balloon driver kicked in and demanded the memory the RAMDisk was running on?
- A reservation would get around the balloon driver issue, but there is no way to specifically target the 512MB of RAMDisk, all memory in the VM must be reserved.
- I’m a pragmatic Windows systems administrator at heart, with a heap of systems and processes to manage and monitor. I don’t want the additional burden of making sure the RAMDisk loads at boot, keeps a consistent image across boots, can be easily updated by new code pushes, and remains compatible with new VM hardware and Tools versions.
- A RAMDisk would take from what are already memory constrained VM’s, possibly hurting performance more than helping.
- If the disk subsystem is slow enough to get you thinking down the path of a RAMDisk, maybe it’s time for a new SAN…
I did some Googling around and couldn’t find any decent info. I did find a few hits on people running VMware guests entirely inside a RAMDisk – a concept that peaked my interest almost enough to think about trying it just to say I did…. Have any of you experimented with a RAMDisk inside a VMware guest? If so, what did you take away from the setup? Was there a performance gain? Where there gotcha’s? Leave a comment if you have experience, guesses, or advice on this idea.