Iis – Is using a RAM Disk to serve IIS ASP.net beneficial on a VM Webserver

asp.nethyper-viisramdiskweb-server

Setup:

Windows Server 2008 R2, Hosted on HyperV Virtual Machine allocated 3GB Memory.

I've setup a RAMDisk (capacity of 512MB more than sufficient for our requirements) using ImDisk on this virtual web server and allocated it 3GB of RAM (the hosted applications don't require any more than ~768MB under heavy load).

Originally the WebRoot directory was on a network share which performed sufficiently but have noticed under heavy load this has resulted in a noticeable increase in LAN traffic to the network sharing server (which I believe is accessing the network share to serve up the webpages to my users – should this be happening?).

As the VM is hosted in a Fail-Over Cluster the VM's C:\ drive is stored on an iSCSI SAN, so there was no performance benefit (tested this) in keeping the WebRoot folder on the C:\ drive.

So I have opted for putting the content onto a RAMDisk which of course showed a good improvement in terms of Access Time especially. The source content would still be stored on the Network Share, but would be synchronised to the RAM Disk every 24 hours.

Anyone have good reason to believe this would:

A) Not be worth it?

or more importantly,

B) Be an out-right bad idea!?

Critique appreciated, both positive and negative!

Best Answer

IIS will not cache content from a network share, which is why you were having bad performance. It should however cache the files when stored on the local disk. The fact that your server is virtual and the host's disk store is on an iSCSI disk should not affect IIS's ability to cache the files.

I can't imagine a ramdisk giving you a performance edge over IIS's native disk caching barring any extremes after the first request.

I would be opposed to using a ram disk unless you have an edge case where the type of content you need to cache doesn't fit in with IIS's cache. I like the KISS rule. ;-)

Related Topic