w3wp вылетает - PullRequest
       3

w3wp вылетает

2 голосов
/ 06 октября 2010

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

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

  • Win 2008 64-битный SP2
  • IIS7
  • Двойной 3,1 ГГц Xeon
  • 4 ГБ Ram

Первая ошибка: Приложение: w3wp.exe Framework Версия: 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 этого не делает, похоже, это решило, не знаю как, но это работает, поэтому я счастлив

Ответы [ 4 ]

3 голосов
/ 21 января 2011

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

2 голосов
/ 06 октября 2010

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

1 голос
/ 06 октября 2010

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

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

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

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

0 голосов
/ 16 августа 2011

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

Ссылки на статьи, которые он упоминает в своей VLog:

Рекомендации по настройке для 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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...