У меня есть сайт, который зависает каждые 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 ядра, так что если он занят, вы все равно получите ответ. Или, может быть, люди со слэшдотами правы, и я идиот из-за использования периода Windows, смеется. Однако, по моему опыту, это обычно МОЙ алгоритм / ошибка конфигурации, а не ошибка базовой технологии.
Любые идеи приветствуются.
Как указал Джим Б., перед развертыванием вы должны были протестировать в своей ЛАБОРАТОРИИ. Проверьте следующее
IIS - убедитесь, что у приложения есть собственное пространство процесса приложения.
Проверьте состояние вашей сессии в asp.net.
Проверьте соединение между приложением (IIS) и БД, возможно, облачное соединение разорвано.
Вы можете видеть журналы событий IIS? Взгляни на это.
Вы пробовали запустить приложение на реальном сервере, чтобы посмотреть, зависает ли оно там? Я бы заподозрил платформу «облачных» вычислений, прежде чем подумать, что ваше приложение или ОС является проблемой. Почему вы говорите, что у SQl 300 МБ оперативной памяти = - это то, что он использует? В ваших спецификациях указано, что у вас есть сервер с 1 ГБ оперативной памяти.
Судя по предоставленной информации, наиболее вероятной проблемой является одно ядро виртуальной машины, поскольку вы используете веб-сервер и базу данных в системе. Если ваша хостинговая компания позволяет добавлять / удалять ядра, добавьте второе ядро и снова проверьте свою производительность.