Процессор доводится до 100% процессом, пытаясь отследить и устранить проблему
У меня возникают проблемы с зависанием ЦП веб-серверов на 25%, затем на 50%, затем на 75%, пока, наконец, не достигнет максимального значения в 100%. Мы предполагаем, что это может быть несколько медленнее SQL-запросов, но не может воспроизвести проблему
Пытаясь докопаться до сути проблемы, мы начали смотреть на настройки IIS (7), мы наткнулись на возможность установить "процессы веб-сервера" более чем на 1, думая, что это может освободить и увеличить процессы, доступные для Пользователь запрашивает, но как только мы сделали это, оно сломало наше приложение, которое мы обнаружили позже, вероятно, потому, что мы используем сеансы, а процессы веб-сервера не сохраняют сеансы от одного и того же пользователя.
Итак, вопрос в том, есть ли параметр, который позволит нам продолжать использовать сеансы, но также разрешать несколько рабочих процессов?
или у кого-нибудь есть мысли о том, что может быть причиной увеличения использования процессора?
Спасибо заранее за любые советы
2 ответа
На максимальных процессах: это называется веб-садоводством - если ваше приложение не имеет состояния, вы не сможете этого сделать. Кроме того, в большинстве случаев # процессы не улучшат масштабируемость, поскольку Windows планирует потоки, а не процессы.
Чтобы понять, что не так:
Используйте представление "Рабочие процессы" на уровне сервера в диспетчере IIS.
В рабочих процессах будут перечислены все W3WP и приложения, к которым они принадлежат.
Затем вы можете просмотреть запущенные запросы в каждом процессе, щелкнув по нему правой кнопкой мыши.
Если этого все еще недостаточно, чтобы сузить причину, вам нужно использовать профилировщик выборки или отладчик, чтобы определить, что приложение пытается сделать. XPERF из Windows Performance Toolkit, или DebugDiag, или WinDBG, или Process Explorer можно использовать, чтобы получить представление о том, что он делает.
Попробуйте использовать Process Explorer + Process Monitor от Sysinternals.
PE позволит вам просмотреть большую часть статистики процессов, а также стек вызовов для каждого потока. PM покажет вам весь процесс, файловую систему, реестр и сетевую активность процесса в режиме реального времени.
Если вы хотите получить более подробную информацию об их использовании, посмотрите на веб-сайте Sysinternals. Есть несколько уроков и видео, освещающих их использование.