IIS - загрузка процессора постепенно увеличивается в течение нескольких дней до 100%

Высокая загрузка процессора

Картина объясняет все это. В последние несколько месяцев у нас была проблема с веб-сайтом IIS MVC 5, размещенным в Microsoft Azure. Сайт, по-видимому, непрерывно потребляет процессор в течение нескольких дней, пока не достигнет 100% процессорного времени. Я использовал Perfmon/DebugDiag для записи того, что происходит, когда сервер достигает 100% без каких-либо положительных результатов. Я также отслеживал рабочие процессы IIS, чтобы увидеть, не зависает ли какой-то один конкретный запрос, но все запросы обрабатываются быстро (до 100%). Хватает за соломинку - у нас были одноранговые проверки кода, чтобы убедиться, что не было ошибок / конкатов строк.

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

Любое понимание будет оценено как отладить это дальше. Я безуспешно следил за этой статьей Microsoft: http://www.iis.net/learn/troubleshoot/performance-issues/troubleshooting-high-cpu-in-an-iis-7x-application-pool Troubleshooting-high-cpu-in-an-iis-7x-application- pool

Благодарю.

1 ответ

Сборка мусора обычно связана с памятью, а не с процессором. Конечно, у вас могут быть объекты с подпрограммами, которые находятся в цикле, и эти объекты медленно растут, или время между циклами цикла уменьшается. Да, вам нужно профилировать свои процессы, так как это скажет вам, какие методы вызывают все время процессора. Я рекомендую Telerik инструмент JustTrace, хотя есть много других.

Еще одна мысль: вы можете подумать, что избавились от своего объекта, но цикл все еще работает. Подумайте о том, чтобы завершить ваши циклы корректно с помощью токена отмены или условия.

Другие вопросы по тегам