У меня есть сайт ASP.NET MVC 4, работающий на двухъядерном процессоре Xeon E7540 с частотой 2 ГГц, 8 ГБ на 64-битном Windows Server 2008 R2 Standard.Почему ASP.NET MVC OutputCache терпит неудачу при тестировании нагрузки, но работает, просто обновляя страницу в браузере?
Пул приложений использует .NET 4.0 с интегрированным управляемым режимом трубопровода.
Я украшена моя функция Index с OutputCaching:
[OutputCache(CacheProfile = "ContentPageController.Index")]
и нижеследующий доступ
<add name="ContentPageController.Index" duration="60" varyByParam="none" location="Server" />
Индексом действия в Web.config подготовлена база данных MS SQL, у меня есть SQL Profiler работает на сервере БД, и я вижу, что если я обновляю одну и ту же страницу из браузера в течение 60 секунд, база данных будет удалена только один раз, что указывает на то, что OutputCache запущен.
Однако, когда я загружаю тестовый сайт, создающий лихорадку 1-50 пользователей в течение 60 секунд (граф прикреплен), OutputCache не работает почти сразу после запуска теста, я могу видеть в SQL Profiler запросы, попадающие в базу данных в то время как я ожидал, что только первый запрос ударит по базе данных.
Примерно за 15 секунд до тестирования процессор Web-сервера начал колебаться от 85% до 100%, , в то время как частная память рабочего процесса не увеличилась, оставаясь ниже отметки 149 МБ, начавшейся с 147 МБ перед тестом.
Я совершенно незнакомый, любая идея, что я должен искать?
Большое спасибо!
Загляните в системный журнал, если ваше веб-приложение действительно переработано или разбито. Возможно, он потребляет больше памяти, чем разрешено (настройки пула приложений). – MichaC
Спасибо @Ela, я проверил и рабочие процессы не перерабатывались и не разбивались. –