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

We have a 16-core server which acts as a Virtual Machine host.

One of the VM guests is a Windows Server 2012 box which hosts a .NET Web Service that feeds live information to users of a mobile phone app.

We now need to add a second .NET web service for a new upcoming app. (similar web service, almost identical code base)

The existing virtual server is already under a high load so, the way I see it, we have two options:

1 - New Site on the same virtual server

  • Increase the RAM and VCPU allocation of the VM Guest instance.
  • Add the web service as a new site to the existing IIS8.
  • (optionally) Pin each web service's app pool to its own dedicated CPU cores. (using IIS8 cpu mask)

2 - New virtual Windows Server

  • Create an entirely new VM Guest (on the same host) with its own dedicated RAM and VCPU resources.

I'm struggling to choose between the two options - is there any difference in performance?

The appeal of option 2 is that, intuitively, a separate virtual server feels 'isolated' from the other server, so in my mind it is providing its own uncontended resources (CPU, RAM, IP address) which would perform better.

But, when I think about it, as both are running on the same host machine anyway, is there really any difference? Not to mention the licensing costs for the OS itself.

Say we go with option 1 repeatedly, i.e. many multiple IIS web services, does IIS performance ever degrade to the point it would make more sense to use a separate, second Windows Server, albeit a virtual server on the same host? And I wondered whether there'd be a networking bottleneck as all web services would point to the same IP address.

share|improve this question

1 Answer 1

Ah, the age-old question of performance optimization. There is never one answer to the question, except for try it out and be prepared to change it.

Since adding a new site is simple, I would try that first. Processor pinning is probably unnecessary and will likely only result in resource starvation.

When you run out performance, you can re-size your existing VM or move some sites to a new one. Or you could even create more than one web server VM, all running all of your sites, and use a load balancer.

share|improve this answer
    
Thanks. Your answer implies that, eventually, performance will degrade to the point where it would be better to create a new VM. I understand that in a general context, but this question is specifically about the VMs being on the same host. So are you saying that you think that there are circumstances where 2 virtual servers (on the same host) would be better than one? Assuming that in both cases the total amount of RAM/CPU across all servers is the same. –  Carlos P Dec 31 '13 at 17:14
    
For flexibility, I would rather run a few medium sized web servers than one large one. The advantages you get in terms of manageability are enormous. For example, if you run out of capacity then adding more is just starting up an additional VM; shut it down when you don't need it anymore. Otherwise you will have to reboot your single VM to add processors or memory. So you just need to decide what is best for you. –  longneck Dec 31 '13 at 17:25

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.