Назад | Перейти на главную страницу

Лучший способ настроить серверы для производительности .NET

Предположим, у нас есть 3 физических сервера, и, допустим, нас интересует только производительность, а не надежность. Что лучше: дать каждому серверу определенную функцию или сделать их все дублирующими и разделить трафик между ними?

Другими словами, выделить 1 как сервер БД, 1 как веб-сервер и 1 как сервер отчетов / хранилище данных, или лучше разместить все три службы на каждом сервере и использовать их как веб-ферму?

Это действительно зависит от характера приложения и характера вашего трафика - на общий вопрос не существует одного правильного общего ответа.

Некоторые способы успешного решения этой проблемы:

  • Составьте хороший план тестирования, используя автоматизированные инструменты. Для веб-приложений Browsermob - отличный выбор. Вы можете сделать то же самое с селеном RC и небольшим количеством смазки для локтей.
  • Встраивайте в систему качественные измерения и приборы. Никогда не думайте, что что-то быстрее, знайте, что что-то быстрее.
  • Ставьте перед собой четкие цели. Возможность обслуживать 42 миллиона клиентов не имеет значения, если у вас всего дюжина.

Наконец, помните, что нагрузка кардинально меняет ситуацию - некоторые действия, которые делают для обработки массового трафика, на самом деле имеют отрицательные последствия для производительности до того, как вы получите трафик. Сама ASP.NET - отличный пример - вы, вероятно, потратили много времени, ожидая, пока рабочий процесс запустится в режиме разработки. Но в производстве эта предварительная компиляция окупается с лихвой.

Производительность в какой области? Большое количество одновременных пользователей веб-сайта или серверное хранилище данных и отчетность?

Веб-производительность: два веб-сервера с балансировкой нагрузки, подключенные к одному серверу базы данных. Надеюсь, что работу по хранению данных и составлению отчетов можно будет выполнять в нерабочее время.

Отчетность / интеллектуальный анализ данных: Одна сеть, одна база данных, один сервер хранилища данных.