RAMDisk Usage in a vSphere Environment

ramdiskI 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.

Comments

  1. Caio Zanolla says:

    Found your article by accident when following PlanetV12n on twitter.

    I do run a RAMDisk inside one of my linux guests. It helps (a lot) when dealing w creation of lots of small temp files. I had to resort to it when running Magento Web Commerce.

    It was done some time ago and by then we were using vmware server, with very limited memory and I suppose it did memory balooning very agressivelly. We didnt observe any problems back then.

    We’re on esxi now, and im just not leaving the RAMDisk even with fast controllers, drives and raid. We got spare memory on it so I couldnt tell if tere is a problem w balooning and RAMDisk.

    Bottomline, it might work better than expected.

    kind regards,
    Caio.

  2. Take a look at Atlantis Computing and the vScaler product which does a form of dynamic inline IO and Storage caching. The product can accelarate performance of apps and VMs for most IO intense workloads.
    http://www.atlantiscomputing.com
    vScaler

Drop a comment below:

%d bloggers like this: