2010-10-06 6 views
2

Один из наших веб-серверов страдает от случайного сбоя w3wp.exe, и после нескольких недель отладки я просто не могу понять, почему. Единственное, что помогло до сих пор, - это сократить максимальные рабочие процессы с 15 до 5, однако это не идеально, поскольку мы используем машину с несколькими процессорами в надежде сократить общее количество необходимых серверов. Мы обслуживаем большой объем небольших запросов, поэтому параллельная обработка является требованием.w3wp crashing out

Насколько я знаю, все возможные источники столкновения параллельной обработки были устранены с помощью блокировки потоков.

  • Win 2008 SP2 64Bit
  • IIS7
  • Dual 3.1GHz Xeon
  • 4Gb Ram

Первая ошибка: Применение: w3wp.exe Framework Version: v4.0.30319 Описание : Процесс был прерван из-за внутренней ошибки в .NET Runtime на IP 70D9CECA (70D40000) с кодом выхода 80131506.

Круги сразу по: приложения w3wp.exe Сбойное, версия 7.0.6002.18005, штамп времени 0x49e023cf, вызвавший отказ модуля clr.dll, версия 4.0.30319.1, штамп времени 0x4ba1d9ef, код исключения 0xc0000005, ошибки смещения 0x0005ceca, идентификатор процесса 0x % 9, время начала приложения 0x% 10.

Большое спасибо

Редактировать проблемы в конце концов решено. Оказалось, что SQL-сервер размонтировал базу данных сразу после каждого запроса, поэтому каждый новый запрос должен был ждать его повторной установки. В любом случае, говоря, что SQL Server не делает этого, похоже, решил это, не знаю, как это работает, поэтому я счастлив

+1

Позвоните в службу поддержки Microsoft. Здесь будет трудно отследить эту проблему. – Pradeep

ответ

3

Проблема в конечном итоге решена. Оказалось, что SQL-сервер размонтировал базу данных сразу после каждого запроса, поэтому каждый новый запрос должен был ждать его повторной установки.В любом случае, говоря, что SQL Server не делает этого, похоже, решил это, не знаю, как это работает, поэтому я счастлив

+1

Не могли бы вы поделиться некоторыми сведениями о том, как предотвратить это? Когда вы говорите «размонтировать», что именно вы имеете в виду? –

+2

В свойствах базы данных, используемой вашим приложением, просматривается страница параметров, а затем в автоматическом разделе вверху есть опция «Автоматическое закрытие», убедитесь, что для нее установлено значение «ложь». Это будет означать, что база данных потребляет небольшое количество ресурсов, даже если она не используется, но она решила проблему. – Hawxby

+0

Спасибо, что нашли время, чтобы написать это. (Он уже был установлен на false, так что не помог мне, но спасибо в любом случае) –

2

Код исключения 0xc0000005 обычно указывает на нарушение доступа к памяти. Найдите какой-либо небезопасный компонент, который вы можете использовать.

1

Вы находитесь в прогулке. Эти исключения чрезвычайно сложны для отслеживания и исправления.

Первый шаг - получить IIS Debug Diagnostic Tool (v1.1). После того, как вы установили это, вам нужно будет настроить некоторые проекты отслеживания, а затем присоединить отладчик к выполняемым процессам. Имейте в виду, что этот инструмент собирает много данных (он может превышать 1 ГБ), поэтому расчесывание через него может быть проблемой, но у него есть хороший потенциал рассказать вам, какие модули вызывают сбои и какие модули мешают.

Причина, по которой w3wp.exe рушится, заключается в том, что во время фаз транзакции происходит незанятое исключение, когда ваш код/​​мониторинг работоспособности/etc уже завершен.

В моем личном случае я обнаружил, что отключение сеанса от процесса решило проблему. Я никогда не обнаружил полной причины, но самое лучшее, что у нас было, было то, что требования к памяти для подкачки были слишком велики для w3wp.exe, чтобы обрабатывать все одновременно. Как только мы разделились на внешний сервер состояния сеанса, проблема исчезла.

0

Возможно, пора пересмотреть свой веб-сад. Скотт Форсайт имеет интересную 11 минут видеоблог о том, почему webgardens контрпродуктивны: http://dotnetslackers.com/articles/iis/Why-You-Shouldnt-Use-Web-Gardens-in-IIS-Week-24.aspx

Ссылки на статьи, которые он упоминает в своем Видеоблог:

рекомендации Tuning для IIS6 и IIS7 - прочитать всю статью: http://support.microsoft.com/kb/821268 Дополнительная информация http://blogs.msdn.com/b/tmarq/archive/2007/07/21/asp-net-thread-usage-on-iis-7-0-and-6-0.aspx

Его нижняя строка - если у вас есть проблемы с производительностью, которые разрешаются веб-садами - используйте веб-сады в качестве отличного костыля, пока не будет решена основная проблема с производительностью (как правило, конфликт ресурсов).