My company has a number of different types of hardware, for servers as well as workstations. Also, we build new systems (especially servers) rarely enough that imaging is of limited utility, because the image is bound to be out of date by the time we want it again.

We're thinking about installing a virtualization tool (almost certainly VMWare ESXi) on the hardware, but only installing one VM on each machine. This way, we get the benefits of hardware abstraction, but still have consistent performance. We could "image" any existing machine just by copying the VM (or, for the first time, using a P2V tool); load the image whenever we want in VMWare Server for trivially easy updating, and have the benefit of snapshots; and simple deployment to heterogeneous hardware.

The question is: what sort of performance hit can we expect? I've found lots of studies online comparing the performance of N virtual machines running on one computer for various values of N, but none that compare it to bare-metal. I seem to recall hearing once that Xen could cause a 20-40% degradation in IO performance, which (if that's true, and if ESX is similar) would hit our SQL servers pretty hard.

Does anyone know about virtualized vs. bare-metal performance of Windows Server on ESX, when there's only one VM so it's not competing for resources?

Besides performance, can anyone think of other downsides to this sort of setup?


Well if you are running on ESXi without licensing it then you will be limited to using 4 cores at the moment. That may not be a big deal but it's worth noting that limiting factor in case it's relevant to you.

The general performance degradation for server workloads on current generation hardware is in the order of a few percent - you are unlikely to be able to notice it but you might be able to measure it. A 20-40% degradation in performance for any major component (CPU, RAM, Storage, other IO) would be unacceptable in my book, I've never seen it happen.

You'll need to allocate some percentage of resources for management overhead though, that's a couple of hundred MB of RAM potentially (depending on the size and type of the Guest OS).

I've done this for a handful of customers who weren't interested in wide scale virtualization - generally to enable older Windows 2000 servers to run on current gen hardware where there are no longer drivers available for W2K - without any issues. I still think it's relatively wasteful, but if you don't mind that part then go for it.

  • I found a page comparing the different pay versions of ESX/ESXi (now marketed as vSphere, it seems), and another comparing their software to their competitors. But nothing comparing the free version (now "vSphere Hypervisor") to the pay ones. Where do they say it's limited to 4 cores? – Josh Dec 13 '10 at 19:12
  • I don't recall seeing that specifically either, but I know Enterprise licensing limits you to 8 cores so that doesn't seem unreasonable that free would limit you to 4. In any case, extensive testing at our company has indicated that unless your host server has at least 16 cores you will most likely see negligible gains to performance as you go past 4 CPUs anyway (Specifically with SQL, not sure about other applications). – Charles Dec 13 '10 at 19:57
  • @Charles \Josh - Sorry I wasn't clear - an unlicensed ESXi install will only support 4way vSMP, ie 4 virtual CPU's in the guest and so will only allow you to make full use of at most 4 cores if you are only virtualizing on a 1:1 basis. See here kb.vmware.com/selfservice/microsites/… . To enable more than 4way vSMP (up to 8way) requires Enterprise Plus licensing. This is a different issue to the No of Cores\CPU that are covered by a license - that used to be 4 for most versions and 8 for Enterprise, and is now 6 and 12 respectively. – Helvick Dec 13 '10 at 23:06
  • Thanks @Helvick, but when you say "unlicensed ESXi install" does that mean the product that VMware currently calls "vSphere Hypervisor"? That's free, but still requires obtaining a (free) license before you can activate and use it. The link you shared does not mention vSphere Hypervisor, or anything I recognize as a free-to-use product, at all... should I just assume that since vSphere Essentials is limited to 4-way vSMP, that anything cheaper probably is too? – Josh Dec 14 '10 at 17:57
  • You're correct there - the rebranding to vSphere Hypervisor hasn't been reflected across all the support docs yet but yes the limitation applies to the "free license" - the only license that enables >4-way vSMP is Enterprise Plus. – Helvick Dec 15 '10 at 14:30

So your question covered a lot of ground judging by the answers you have received so far. I am going to include some links that will help move you in the right direction, but to answer your specific question - you should expect a performance hit when running MSSQL much greater than for other applications. My organization is currently running approximately 15 vm hosts across 3 vsphere clusters with approximately 250 guests machines and I can tell you that as a general rule we only see a few percent, say 5 or less difference in physical to virtual - particularly with servers moving off of older hardware.

**However, with SQL server we typically see between 10%-20% difference. And yes, this is in a scenario like you describe with a SQL server physical being converted to a vmware guest on a physical host running nothing else. We have tested this extensively in house for several reasons which are more in depth than this answer warrants. Suffice it to say your mileage may vary but you should be cautious about moving any SQL servers with a heavy load without testing first or the willingness to move them back if necessary. Also note that Snapshots are only good when the data isn't changing at a rapid pace. It is not fun to Snapshot a SQL server only to find out a week later that it has 200GB worth of snapshot files.

You will find many sources saying you can get near native performance including this paper from VMWare using ESX 3.5. And you can tune the system to get as near to their results as possible using information such as this presentation from VMWorld, but in the end with a SQL Server you will most likely end up at least 10-15% from native, and believe me we tried.

  • So it sounds like IO-bound processes probably suffer the most. CPU-bound processes probably work well, and memory-bound processes only lose a couple of hundred MB to the VM later. Thanks for that info! – Josh Dec 13 '10 at 22:37
  • Actually, that first link has no comparisons to native performance. It starts by saying, misleadingly: this study proves that VMs can efficiently run SQL server. But then it goes on to compare 32-bit vs. 64-bit VMs, and VMs with varying numbers of processors, but never VM performance to native performance. (Since the study was done by VMWare, I think we can learn a lot by looking at what they decided to leave out :) – Josh Dec 13 '10 at 22:45
  • My apologies then, I must have linked the wrong article! They actually have a study looking at native to virtual where they basically state you should get around 92% of physical. But when we actually called them on it and asked them to support those numbers they balked. We did everything they recommended including completely changed hardware and customized ESX configs and still never got that close. – Charles Dec 13 '10 at 22:59

This is really not a good use case for virtualization. It's more to manage, it's more to troubleshoot, it's more to update, it's more attack surface, it complicates backups, it complicates networking, it complicates support calls, it degrades performance, and there's almost zero benefit for all the compromises. Every single thing you're hoping to achieve can be achieved more sanely without virtualization.

You need to think about exactly what you're hoping to accomplish through "the benefits of hardware abstraction," because that's exactly what drivers were designed for. This isn't 2002 anymore -- if you've designed appropriately, Linux and Windows can basically have their hard drives plugged into new hardware and just go when you hit the power button.

  • Hmm, what does "designing appropriately" consist of? According to Microsoft, imaging is only an option if all of your hardware is basically identical. Most other people online seem to agree, and suggest automated installations instead of imaging for other cases. Also, it seems to me that backups are simpler, not harder, with this setup, since merely copying an image file gives me the equivalent of a "bare-metal" backup. Management too, for reasons I've described. And I can handle security, so if the performance degradation is small enough it still sounds like a good option. – Josh Dec 13 '10 at 18:58
  • As I mentioned in my answer there are scenarios where the hardware abstraction is useful (try installing Windows 2000 on current gen Dell servers for example). Your reference to modern OS driver flexibility is accurate but not everyone can move everything to a more modern platform immediately. As far as backups are concerned I'd dispute the additional overhead. It might be, but only if you choose it to be. On attack surface the additional risk is not zero but it is low with ESXi. In terms of long term durability it has advantages, they are just not generally applicable and it is wasteful. – Helvick Dec 13 '10 at 19:02
  • Alright, I'll give you snapshot-based backups using something like ghettoVCB as a possible advantage to this approach. – jgoldschrafe Dec 13 '10 at 21:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.