Предположим, у нас есть 3 физических сервера, и, допустим, нас интересует только производительность, а не надежность. Что лучше: дать каждому серверу определенную функцию или сделать их все дублирующими и разделить трафик между ними?
Другими словами, выделить 1 как сервер БД, 1 как веб-сервер и 1 как сервер отчетов / хранилище данных, или лучше разместить все три службы на каждом сервере и использовать их как веб-ферму?
Это действительно зависит от характера приложения и характера вашего трафика - на общий вопрос не существует одного правильного общего ответа.
Некоторые способы успешного решения этой проблемы:
Наконец, помните, что нагрузка кардинально меняет ситуацию - некоторые действия, которые делают для обработки массового трафика, на самом деле имеют отрицательные последствия для производительности до того, как вы получите трафик. Сама ASP.NET - отличный пример - вы, вероятно, потратили много времени, ожидая, пока рабочий процесс запустится в режиме разработки. Но в производстве эта предварительная компиляция окупается с лихвой.
Производительность в какой области? Большое количество одновременных пользователей веб-сайта или серверное хранилище данных и отчетность?
Веб-производительность: два веб-сервера с балансировкой нагрузки, подключенные к одному серверу базы данных. Надеюсь, что работу по хранению данных и составлению отчетов можно будет выполнять в нерабочее время.
Отчетность / интеллектуальный анализ данных: Одна сеть, одна база данных, один сервер хранилища данных.