Take the 2-minute tour ×

Assume we have 3 physical servers and let's say we are only interested in performance, and not reliability. Is it better to give each server a specific function or make them all duplicates and split the traffic between them?

In other words dedicate 1 as DB server, 1 as web server, and 1 as reporting server/data warehouse, or better to put all three services on each server and use them as web farm?

share|improve this question

migrated from programmers.stackexchange.com Apr 14 '12 at 16:56


It depends on your usage and traffic profile. It depends on what performance you're looking to measure: responsiveness, request processing speed, time to write, etc. –  Telastyn Apr 14 '12 at 15:13

2 Answers 2

It really, really depends on the nature of the application and the nature of your traffic -- there is not one correct general answer for the general question.

Some ways to approach this problem successfully:

  • Build a good test plan using automated tools. For web apps Browsermob is a great choice. You could do the same thing with selenium RC and a little elbow grease.
  • Build good measurements and instrumentation into the system. Never think something is faster, know something is faster.
  • Have clear goals that matter. Being able to handle 42 million customers does not matter if you only have a dozen.

Finally, remember that load drastically changes things -- some things one does to handle mass traffic actually have negative performance implications before you are getting traffic. ASP.NET itself is a great example -- you have probably spent lots of time waiting for the worker process to spin up in development mode. But in production that precompilation pays off in spades.

share|improve this answer
Agree with Wyatt and would recommend you understand better where your heavy load functions would be. Will you have more front end users or more reporting, and which will interact most with your back end? –  organicit Apr 15 '12 at 14:08

Performance in what area? The large number of concurrent web site users or the back end data warehousing and reporting?

Web Performance: two webservers that are load balanced and connected to one database server. Hopefully the data warehousing chores and reporting can be done during off-peak hours.

Reporting/Data Mining: One web, one database, one data warehouse server.

share|improve this answer

Your Answer


