Пул приложений IIS Высокая загрузка ЦП, несмотря на отсутствие запросов

10

Недавно я перенес набор серверов Windows Server 2008 R2 / IIS 7.5 на новые серверы под управлением Windows Server 2012 / IIS 8.

Я испытываю странное поведение со стороны IIS. У нас есть 2 одинаковых сервера, на каждом сервере запущено 2 веб-сайта, каждый из которых имеет собственный пул приложений. Код для каждого из веб-сайтов идентичен. (Буквально ... та же самая DLL и все, только немного другая конфигурация).

Пулы приложений настроены на перезагрузку по расписанию каждые 24 часа, но в течение этого 24-часового периода загрузка ЦП рабочего процесса w3wp увеличивается с шагом 12,5% (на сервере установлено 8 процессоров, поэтому я не думаю, что это совпадение).

Как только загрузка ЦП возрастет, он НЕ БУДЕТ возвращаться вниз, пока приложение не перезагрузится. Насколько я могу судить, приложение ничего не делает и в настоящее время не обрабатывает никаких запросов. Я могу заблокировать весь трафик на сервер, и загрузка процессора останется там. Я даже могу перезапустить веб-сайт, и загрузка процессора остается прежней. Единственный способ сбросить использование ЦП - это перезапустить или перезапустить пул приложений, в котором он работает.

Я несколько уверен, что эта проблема не имеет ничего общего с моим кодом, но какая-то плохая конфигурация IIS или изменение в IIS 8, которое плохо работает с конфигурацией оборудования или что-то в этом роде?

Не уверен, важно это или нет, но это серверы Rackspace Performance Cloud.

Вот снимок экрана, показывающий загрузку ЦП с течением времени на этих серверах (зеленые стрелки указывают время, когда пул приложений перезагружается. Вы можете видеть, что каждое плато является целым кратным 12,5%:

введите описание изображения здесь

Кто-нибудь наблюдал такое поведение? Я нашел этот вопрос в 2009 году, когда у кого-то возникла та же проблема с IIS 6:

IIS w3wp использует высокий процессор без трафика

Любая помощь высоко ценится

Леланд Ричардсон
источник

Ответы:

1

У нас точно такая же проблема с Sharepoint 2013 и IIS 8 в 2012 году ... Мы никогда не решали проблемы, а вместо этого понизили до SP2013 на 2008 R2, и все было хорошо.

Джордж
источник
2
мужчина. после всей работы, которую я только что вложил в миграцию, это не тот ответ, на который я надеялся ...: /
Леланд Ричардсон,
1

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

Грег Брей
источник
КАК использовать инструмент диагностики отладки программно, когда high CPU or RAM more 90%?
Kiquenet
@Kiquenet Вы можете попробовать снять дамп памяти процесса и затем проанализировать его на другом компьютере. Я столкнулся с подобной проблемой и смог захватить дамп за <1 мин на сервере при ~ 100%
загрузке
да, а затем захватить дамп за <1 мин на сервере при ~ 100% загрузке ЦП программно ?
Kiquenet
1

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

Приходит запрос, IIS начинает его обслуживать, что-то (возможно, ошибка) вызывает такое поведение, рабочий поток входит в бесконечный цикл и привязывает ЦП к 100%, а затем он просто остается таким, пока пул приложений не будет перезагружен.

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

Иногда новый запрос вызывает это поведение снова , и тогда вы получаете два зависших процессора (или три, или четыре ...).

Переработка пула приложений, конечно, завершает все рабочие потоки, поэтому проблема решается ... до тех пор, пока это не произойдет снова.

Massimo
источник
0

Вы можете подключить профилировщик процессора к процессу w3wp и посмотреть, что там происходит. Вы должны быть в состоянии увидеть, что потребляет циклы процессора.

MichelZ
источник
Как программно подключить профилировщик процессора к процессу w3wp, если высокая загрузка ЦП или ОЗУ более 90% ?
Кикенет
0

Похоже, бесконечный цикл для меня. Я видел это несколько раз, несмотря на то, что IIS сказал, что нет ожидающих запросов. Я не уверен, как это может быть, но это именно то, что вы увидите. Сложность состоит в том, что IIS не регистрирует запросы до тех пор, пока они не завершатся, поэтому выяснить, какой запрос вызывает такое поведение, сложно.

Джеймс
источник