Have read quite a few posts/articles on the web, including several QnA threads here at serverfault. However, I am quite confounded by the divergence of opinion. Given that much of what was share was opinion, I tend to rely a bit more on data backed analysis s.a. here link text. The only reason I am unable to trust them 100% either, is that they were using Windows guest, and in my case I want a setup comprising of homogeneous all-Linux Host/Guests, i.e. Host being CentOS, and all Guests being CentOS as well. Also, I believe that there may be few tweakable parameters which can get much better performance out of Xen/KVM. Possibly tweaking the kernel interrupt timer (100Hz / 250Hz etc.) ?

Given that most Cloud hosting architectures typically rely on Paravirtualized setups, I wonder if they are really sacrificing performance ? For an co. running thousands of hosts, a 10% performance loss means quite a significant amount in CAPEX and OPEX.

Does anyone have some research material (hopefully backed by data/statistics) which shows which kind of Virtualization is better for which type of workload ? Especially in a all Linux setup ?

My requirement is for running servers, and my workloads are:- type-1: rdbms, with very frequent writes type-2: rdbms, with very frequent reads type-3: media encoder (audio / video) -- extremely CPU (int & float) and memory intensive type-4: static HTML dispenser type-5: dynamic HTML app-engine (business logic)

The setup planned is for a colo private cloud.

TIA, m

  • 1
    It's really not as simple as X hypervisors will give Y performance loss. Each works a little differently and "performance" will depend on the particular workload and underlying eqiupment/infrastructure more than the hypervisor.
    – Chris S
    Jan 24 '11 at 18:11
  • @Chris. Thanks for your comment/answer. Understand and agree that performance (overall) would depend on workload and underlying infrastructure. Jan 26 '11 at 14:08
  • (last post timed out so could no longer edit....) Actually I've mentioned about the workload in the last para. Having read some of of the performance comparisons, it appears that each virtualization solution has some strengths and weaknesses. If someone has found a near-ideal fit/match, would be great to know and leverage. Jan 26 '11 at 16:26

I can't provide figures or comparisons, but if you're using CentOS, you are IMO best off going for KVM. The reason being - this is the hypervisor developed and maintained by Red Hat, and it's no secret where CentOS comes from.

For best VM performance, make sure the IO intensive VMs are based on a fast backing storage, (a raid 10 LUN on a 4 or 8Gb FC SAN for example), and the disk format used is RAW and not qcow2 (unless you absolutely must use VM disk snapshots). And of course use virtio disk and network drivers

If this is a critical project, you might want to actually go for RHEV, for the extra features and ease of deployment, there are quite a few cloud providers using it extensively already.

  • thanks for the comment. KVM was indeed my initial choice, after Virtualbox (which is where I am currently), and also for almost the same set of reasons. Your reiterating that good performance could be had by using RAW diskformat and sing virtio disk/network drivers, is quite reassuring. I hope that some of the benchmarks about which I read, where KVM fared pretty dissapointingly, were done without those. This is certainly worth the effort, and thanks for the tips. My setup uses el-cheapo commodity computers (assembled desktops).The fanciest thing I could imagine would be RAID. Jan 26 '11 at 16:30

If your virtual machines are really homogeneous, i.e. can use the very same kernel release, a better solution in term of performance and resource usage optimization would be to use OS level virtualization, a.k.a containers.

I'm more familiar with Solaris which provides zones as a mature implementation but Gnu/Linux, which is less advanced in that area provides anyway interesting solutions that might be investigated: OpenVZ, Linux-VServer and LXC

  • thanks for the comment. Right now it is not 100% homogeneous, but my strong intent is to make them so, and baseline everything to either CentOS or Ubuntu-Server (likely to be the former as I am more comfortable with discrete/staged updates). The case of single OS / rel, is just too strong. Having said that, one of the reasons for using HW virtualization was to also ensure that SW fault/failure in one virtual-env doesn't degrade entire system. Also my OS is homogeneous, but some of the other common frameworks/service (e.g. 2 diff version of RDBMS, PHP) are not. Will OS vert work ? Jan 26 '11 at 16:36
  • Again, I'm not familiar enough with the Linux suggestions I made to be authoritative but a properly implemented OS level virtualization solution shouldn't require anything beyond the kernel itself to be shared between the various containers. Resource capping is the common way to avoid containers to impact each other, but again, you need to check what the Gnu/Linux based solutions do offer in that area.
    – jlliagre
    Jan 26 '11 at 21:36

Most cloud providers will offer a service that is capable enough to service the needs of a typical user who is looking to host a couple of mid-low level hosts, of course this is primarily based on vendor and price, pay for what you get.

If you are looking for more IO intensive operations i would suggest looking for a host that might offer you hybrid or in some cases provider better performance by asking them what sorts of back-end storage they are using in their cloud.

if you are looking for media streaming some cloud providers will offer a bundled service through their channel partners.

Send me a ping I have some great recommendations and i'd like to learn a little more about the project, it sounds exciting.

  • Thanks for your response, and proposing the alternative route. Actually, I've been looking at it. Having considered the usual suspects (AWS, Rackspace...), and doing some math, the economics of colo (with cost-spread of CAPEX/OPEX for me), is comparable. My bigger worry is network latency, and which is why I am almost forced to consider colo with some local ISPs. Of course there are couple of other reasons I am not able to talk publicly :) Still, would be interested in knowing abt options/recommendations. Not quite sure how I could ping you. Profile doesn't hv a mailbox/mailid. Jan 26 '11 at 16:49
  • shoot me an email noneil@logicworks.net would love to chat and talk about your projects. Jan 26 '11 at 17:06

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.