Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm interested in modelling various server/network configurations for a web application. I'd like to know in advance which parts of the system are going to be bottlenecks, and whether the bottlenecks are bound by CPU/Memory/Network etc.

One think I've been thinking about is taking a single test server, and setting up each 'real' server as a virtual machine on this, configured as they would be in the wild. I'm going to try this, but wanted to ask the serverfault comunity if anyone has tried this approach before. Is it viable?

I'm not expecting benchmarks, or anything like that of course, but am thinking it might be useful for modeling relative performance, highlighing bottlenecks, and providing a sanity check on the architecture.

share|improve this question
up vote 5 down vote accepted

All that will be good for is sanity checking your overall architecture, and ensuring that all the bits involved are able to get where they need to go.

Other than that, hardware and network will be significantly enough different than production that any performance issues or bottlenecks you find may or may not be present in production.

share|improve this answer
IT allows a lot,m but not scalability and bottleneck testing, OUTSIDE the "what, the sql server eats all my IO because i do not know what an index is" style of overloads. But it is VERY good to validate in general that your setup scripts work for example. – TomTom May 17 '12 at 8:33
You can do some very limited bottleneck testing by using resource reservations on disk/CPU. This isn't a good method though -- Contention between the VMs trying to access the host's resources will skew any results. Like @ErikA said - good for architecture (and failover) tests, but not much else. – voretaq7 May 17 '12 at 15:04

The only way it can be viable and produce worthwhile results is if each virtual machine has an identical structure and resources to the production servers. Whether that's achievable or not only you can say, as we know nothing about your infrastructure.

I've never done this on the scale you're talking about but have used virtual machines to replicate production web servers and thereby experiment with configurations off-line before implementing changes on the live system.

share|improve this answer
Regarding resources. I'm not going to be able to give the VMs exactly what they would get in a live setup, but I was thinking of 'scaling down' everything by a factor (e.g. 4) - i.e. everyhing has a 1/4 of the memory/CPU etc. it would have normally. I was then planning on load testing it, and seeing what breaks first. – UpTheCreek May 17 '12 at 8:55
@UpTheCreek, scaling down resources seldom gives proportional results, so in your case I'd be extremely cautious about reading too much into the results you get. – John Gardeniers May 18 '12 at 10:52

Your Answer


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.