Проблема производительности веб-приложения

Проблема производительности веб-приложения

У меня есть сайт, который зависает каждые 5 или 10 запросов. Когда он работает, он работает быстро, но если вы оставите браузер на пару минут, а затем нажмете на ссылку, он просто зависнет, не отвечая. Пользователю приходится нажимать «обновить» несколько раз в браузере, и тогда он снова работает быстро.

Я использую .NET 3.5, ASP.NET MVC 1.0 на IIS 7.0 (Windows Server 2008). Веб-приложение подключается к базе данных SQLServer 2005, которая работает локально на том же экземпляре. У базы данных около 300 мегабайт оперативной памяти, а остальная часть, как я предполагаю, свободна для веб-запросов.

Он размещен на облачных серверах GoGrid, и этот экземпляр имеет 1 ГБ оперативной памяти и 1 ядро. Я понимаю, что это не так много, но в настоящее время я единственный, кто пользуется сайтом, и я все еще получаю эти зависания.

Я знаю, что это сложная проблема для устранения, но я надеялся, что кто-то сможет указать мне правильное направление относительно возможных проблем конфигурации IIS или каковы будут "грубые" средние требования к оборудованию при использовании этих технологий на 1000 пользователей и т. д. Возможно, для веб-сервера минимум должен быть 2 ядра, чтобы при его занятости вы все равно получали ответ. Или, может быть, люди со slashdot правы, и я идиот, раз использую Windows, точка, lol. Однако по моему опыту, это обычно МОЯ ошибка алгоритма/конфигурации, а не ошибка базовой технологии.

Любые идеи приветствуются.

решение1

Вы пробовали запустить приложение на реальном сервере, чтобы проверить, зависает ли оно там? Я бы заподозрил "облачную" вычислительную платформу, прежде чем думать, что проблема в вашем приложении или ОС. Почему вы говорите, что у SQL 300 Мб оперативной памяти =- это то, что он использует? В ваших спецификациях указано, что у вас есть сервер с 1 ГБ оперативной памяти.

решение2

Как указал Джим Б., вам следовало провести тестирование в своей LAB перед развертыванием. Проверьте следующее

  1. IIS — убедитесь, что у приложения есть собственное пространство процесса.

  2. Проверьте состояние сеанса в asp.net.

  3. Проверьте соединение между приложением (IIS) и БД, возможно, разрывается соединение с облаком.

  4. Вы можете увидеть журналы событий IIS? Взгляните на них.

решение3

Из предоставленной информации следует, что наиболее вероятной проблемой является одно ядро ​​на виртуальной машине, поскольку вы запускаете веб-сервер и базу данных в системе. Если ваша хостинговая компания позволяет вам добавлять/удалять ядра, добавьте второе ядро ​​и снова проверьте производительность.

Связанный контент