Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

If a server is going to run virtual machines on it, each with 2 cores and 3gb RAM, is it more efficient (processing-power-wise, not in energy costs or parts cost) to run one huge server with quad 20-core processors and 120gb RAM (128gb) or to use maybe four dual-cpu-10 core processor servers with 120gb RAM? And at what point does it start becoming less efficient? Surely there must be a happy medium.

share|improve this question
    
Giving a VM multiple vCPUs is likely to cause more performance problems then having a single vCPUs unless you really know what you are doing. I also suspect that theoretical CPUs and RAM would be mostly irrelevant. These days I/O tends to be the biggest problem. –  Zoredache Sep 8 '11 at 3:10
    
Thats what I suspected. Not like I can really afford nor have a use for a monster like that. –  U4iK_HaZe Sep 8 '11 at 3:14

1 Answer 1

up vote 2 down vote accepted

Any hypervisor will contain a virtual processor scheduler of some sort. These schedulers are tremendously useful, as they enable you to overcommit your machine. They do, however, have a cost.

When you haven't overcommitted your machine, then that cost will remain fairly small, but it will still be there. Splitting your workload across several smaller machines will, in general, make them a tiny bit more efficient.

But so what.

This isn't how you should, in my opinion, be looking at the question. Either setup is going to run your workload similarly, as long as you're not overcommitting. On the big machine, at least, your real bottleneck is probably going to be storage throughput. So I'll just assume that you would have wanted your question answered using the same number of HBAs and storage devices in either case.

Instead, you should look at this tradeoff as one where, with the single big machine, you get ease of host/hypervisor management. With the little machines, you generally get lower overall cost and higher overall uptime.

If one of your little machines fail, you just restart those workloads on the others, somewhat overcommitting them until you fix your hardware. If the single big machine fails, then everything is down until you can get that machine working again.

People who advocate buying really big machines to run a hypervisor (where "really big" is defined in my mind, as "more than five times bigger than the biggest VM that you will host") advocate that on the basis of management costs. They say that a single machine is simply much cheaper to manage than a bevy of little ones.

Whether "they" are right, and whether you specifically will see higher costs for the cluster of smaller machines, depends mostly on whether you are set up to effciently manage the cluster. There are lots of management suites that will help you, allowing you to treat the cluster largely as a single entity. If you already have and use one of those, then you'll probably be better off with the cluster.

share|improve this answer
    
Very informative. Thanks. I was leaning more towards cluster but the huge machine would be just "braggin rights." In reality, as confirmed by you, the cluster makes more sense. –  U4iK_HaZe Sep 8 '11 at 4:34

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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