В настоящее время мы создаем N-Tier-приложение ASP.net на базе .NET 3.5 с Oracle 10gR2 в качестве серверной базы данных. Приложение требует большого объема данных, основано на транзакциях и должно поддерживать среднюю нагрузку около 600 одновременных пользователей.
Намерение состоит в том, чтобы использовать Windows Server 2008 / IIS7 как для веб-уровня, так и для уровня приложений. 64-битная версия определенно вариант. Серверы баз данных уже установлены, и сейчас это не является важным фактором.
Поскольку приложение все еще находится в стадии разработки, я не могу проводить тестирование нагрузки / производительности и использовать эти данные, чтобы получить представление о количестве / типе оборудования, которое потребуется для предполагаемой нагрузки. Кроме того, любая идея относительно того, какие серверы / процессоры являются стандартом для такой конфигурации.
У меня очень ограниченный опыт / знания в отношении аппаратного обеспечения / моделей серверов и даже меньше в отношении стоимости, поэтому любая помощь по любому из этих параметров будет принята с благодарностью!
Грубо говоря, вам нужно, чтобы в сети было много серверов, а не столько в приложениях, и еще меньше на уровнях базы данных.
Очевидно, многое из этого зависит от того, что на самом деле делает ваш код и насколько хорошо он написан, но вы должны иметь возможность обрабатывать в среднем 200 пользователей на сервер (если каждый сеанс пользователя не представляет десятки мегабайт памяти) на Dell R710. . Если для пользовательских сеансов потребуется много памяти, то некоторые математические операции, делящие вашу общую память, которую IIS может использовать на объем памяти, который потребуется для каждого сеанса, должны дать вам число «одновременных пользователей на сервер».
При правильной настройке Windows / IIS на удивление надежен. Я постоянно достигал 10 000 обращений в секунду на сервере IIS6 (как часть теста на выгорание перед тем, как перейти к продукту). Убедитесь, что вы внимательно посмотрите на perfmon, когда у вас есть код для тестирования, и настройте его соответствующим образом.
Тони ответил хорошо. До разработки архитектуры развертывания у вас должна быть возможность провести нагрузочное тестирование, чтобы получить приблизительные цифры, надеюсь? Возможно итеративно? Проведите какое-нибудь тестирование LoadRunner или другое инструментальное средство для тестирования версии test / dev, чтобы вы могли хотя бы начать разбирать эти вещи?