Назад | Перейти на главную страницу

Процесс загружает процессор на 100%, пытаясь отследить и устранить проблему

У меня проблемы с тем, что ЦП веб-серверов застревает на 25%, затем на 50%, затем на 75%, пока, наконец, не достигнет 100%. Мы предполагаем, что некоторые SQL-запросы немного медленнее накапливаются, но не могут воспроизвести проблему.

Пытаясь разобраться в проблеме, мы начали изучать настройки IIS (7), мы натолкнулись на возможность установить для «процессов веб-сервера» значение больше 1, думая, что это может освободить и увеличить количество процессов, доступных для запросы пользователей, но как только мы это сделали, наше приложение сломалось, что, как мы позже обнаружили, вероятно, связано с тем, что мы используем сеансы, а процессы веб-сервера не сохраняют сеансы от одного и того же пользователя.

Итак, вопрос в том, есть ли параметр, который позволит нам продолжать использовать сеансы, а также разрешить несколько рабочих процессов?

или есть ли у кого-нибудь мысли о том, что может вызвать повышение использования процессора?

Спасибо заранее за любые советы

На максимальном количестве процессов: это называется веб-садоводством - вы не можете этого сделать, если ваше приложение не имеет состояния. Кроме того, в большинстве случаев # процессов не улучшат масштабируемость, потому что Windows планирует потоки, а не процессы.

Чтобы выяснить, что не так:

  • Используйте представление «Рабочие процессы» на уровне сервера в диспетчере IIS.

  • В рабочих процессах будут перечислены все W3WP и приложения, которым они принадлежат.

  • Затем вы можете просмотреть текущие запросы в каждом процессе, щелкнув его правой кнопкой мыши.

Если этого все еще недостаточно, чтобы сузить причину, вам нужно будет использовать профилировщик выборки или отладчик, чтобы определить, что приложение пытается сделать. XPERF из Windows Performance Toolkit, или DebugDiag, или WinDBG, или Process Explorer можно использовать, чтобы получить представление о том, что он делает.

Попробуйте использовать Process Explorer + Process Monitor от Sysinternals.

PE позволит вам просматривать статистику большинства процессов, а также стек вызовов потоков. PM покажет вам все процессы, файловую систему, реестр и сетевую активность процесса в режиме реального времени.

Если вам нужна более подробная информация об их использовании, загляните на сайт Sysinternals. Есть несколько руководств и видео, посвященных их использованию.