Производительность MVC2 в Windows Server 2008 R2 IIS7

Я развертываю приложение MVC2 под IIS7 на сервере Windows Server 2008 R2 с большим количеством лошадиных сил. Он подключается к БД SQL Server 2008, и производительность приложений значительно ниже, чем при работе в отладчике на рабочей станции разработчика (при подключении к той же БД SQL Server). Я уже проверил сетевые подключения, и в журналах событий ничего не указывает на проблему с Windows. Я также запустил Profiler на сервере БД, и запросы быстро выполняются.

Любая помощь с диагностикой этой проблемы производительности будет принята с благодарностью. Я даже построил новый сервер 2008 R2, чтобы протестировать его в надежде, что это был сам сервер, но производительность была той же.

Спасибо

Изменить 1:

IIS работает на сервере Dell R710 под управлением Windows Server 2008 R2 Standard, оперативной памяти 32 ГБ. SQL Server 2008 размещается на отдельном R710 под управлением Server 2008 R2 Standard, оперативной памяти 12 ГБ. Первоначально IIS работал на ВМ, но я переместил его на физический компьютер, чтобы посмотреть, не было ли снижение производительности из-за ВМ. Я испытываю одинаковую производительность на обоих, так что, похоже, это не фактор.

Изменить 2:

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

-Открытое соединение БД: 5 секунд (последующие соединения кэшируются, поэтому они не требуют 5 секунд)

-Первое появление: < 1 сек

-Второй спрок: 5 сек

Третий росток: < 1 сек

Четвертый спрок: < 1 сек

Пятый Спрок: 6 сек

2 ответа

Во-первых, Windows Server 2008 R2 имеет IIS 7.5, а не IIS7. Вероятно, не имеет значения. Однако это другая версия.

Во-вторых, вам нужно выяснить, где находится узкое место. Попробуйте удалить запросы и просто использовать фиктивные данные. Это все еще медленно? Если нет, то это не имеет ничего общего с доступом к данным... если так, то вы знаете, что это проблема доступа к данным.

Вот слайды из презентации об оптимизации приложений ASP.NET MVC. Они смогли улучшить производительность своего приложения с 8 до 400 запросов в секунду.

На слайдах они упоминают, как они его профилировали, и выявляют узкие места (компиляция запросов, множество обращений к RenderPartial, генерация URL-адресов и т. Д.) И дают некоторые советы в конце презентации.

Другие вопросы по тегам