So… I’m configuring a brand new master database server and I had big plans to run memory, disk, cpu, and combined benchmarks on KVM, Xen, and no virtualization and publish the results. I got tired of it and moved on.
Turns out that the current version of Xen has an older kernel (as usual) without support for my LSI 9260 6Gb/s SAS RAID controller. I built a development version of Xen from their Mercurial repository that includes a newer kernel but I haven’t been able to get it to boot.
I did run several benchmarks on KVM with virtio and huge pages. It’s fast, taking a 3-6% hit on most tests, but the performance hit on IO-heavy database benchmarks is (not surprisingly) large enough that I’m not going to virtualize. I’ll keep KVM in case I need the flexibility or want to run some virtual machines someday but MySQL is going to run on the host OS.
After this thing is installed and I reshuffle my other servers, I’ll see if I can do a real Xen / KVM comparison on one of the machines that will be repurposed. I love the flexibility and ease of management that virtualization has given me but it just doesn’t make sense for high-load servers where nearly 100% of the resources are going to one process.



Comments (6)
Gee, I’ve been trying to point out to manglers, um, managers for YEARS that highly I/O intensive servers/applications shouldn’t be virtualized, but what do I know, I’m just the storage monkey!
Whenever you get around to running your tests again, I’d also recommend taking a look at OpenVZ (http://openvz.org). I was originally turned on to it by the guys at Blue Box Group (http://blueboxgrp.com), just to make it easier to fire up images on a batch of identical app servers. It ended up being very lightweight, so I installed it on a dedicated DB as well and couldn’t find a significant different vs. bare metal. Obviously, YMMV depending on your setup, but it’s been great for me. Good luck!
Personally, the best option is to go with vmware ESXi, and have the guest run in paravirtualized mode. You should see well under 3% hit with paravirtualization, but may see 5 without it.
Mixxing high I/O intensive VMs with high CPU intensive VMs is a perfect match. The main thing is servers with 64GB of memory or more.
OpenVZ is fairly good performance wise comparable to ESXi, but the free version of Vmware is more manageable especially if you have a SAN.
@DATAGODESSS: The fact that having things virtualized can mean 0 downtime for a hardware upgrade, and typically the hardware improvements in one year are greater than the slight loss of performance loss from being vertualized, it’s the best way to have the highest performance if your data center is large enough where you have to spend at least 6000 a year on server harward. If you don’t get at least one server a year, where you can always migrate your demanding apps to a new box, then it might seem pointless. If you have hundreds of servers, it’s the heavy I/O and heavy CPU ones that make the most sense to virtualize as they are the ones that need an upgrade.
Hi.
I’m interested to hear your testing results, as I also constantly deliberating between whether to virtualize CPU/IO heavy application or run them close to metal.
Where any results published?
I’m curious to know your storage configuration and what you used for the guest backend?
@John Lauro: that’s certainly an interesting perspective on virtualization!