We are experiencing some issues with our attempts to virtualize our web server, and we have narrowed the problem down to MS Access in VMWare ESXi. Prior to virtualization, we had two MS Access databases on a Windows Server 2003 box being hit by ASP code in IIS on the same box, and performance was never an issue, even when the database was queried or changed rapidly by multiple users.
When we install ESXi on a box with identical hardware (or non-identical hardware for that matter), then create a Windows Server 2003 VM on top of that (either by creating a new machine from scratch and installing Windows Server03 on it, or by using the VMWare Converter tool on the old box), and re-create the web structure (ASP, Access db, IIS, etc.) on the VM and hit the web interface for the database, performance is at first slower than it was on the physical server, and then after a few quick queries, slows to the point of being unusable.
The issue does not seem to be a problem with IIS on the VM, as we have several other websites running without an Access backend that do just fine. It also does not seem to be the configuration of a particular virtual machine itself, as we have tried it on several virtual machines (as I said, created both from scratch and by P2V conversion) running under different ESXi installations on different host boxes, some with different hardware and some with the same hardware. We believe we've narrowed down the problem to some interaction between Access and ESXi.
If anyone has any experience or advice it would be much appreciated; if there is some optimization step we are missing, please say so.
We did finally figure out how to fix our issue - we increased the "Maximum number of worker processes" in IIS6 from 1 to 15 for the Application Pool containing our Access database app. I'm not sure how you would make this change in Server 2008 / IIS7 however. The little experience I've had with IIS7 has been bewildering to say the least.