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.