Как проанализировать чрезмерное использование процессора в режиме ядра Windows?

8

Моя машина с Windows XP недавно начала зависать на мне при каждой нечетной перезагрузке после нескольких минут использования (разные программы / никакой дополнительной загрузки вообще не запускается).


Обновление: мне теперь удалось получить немного больше деталей с Process Explorer. Это двухъядерный процессор, и использование ядра на 100% только на одном ядре. В списке процессов показаны DPC - отложенные вызовы процедур на 50% (это 100% на одно ядро). Итак, вопрос сейчас: ** Что такое ЦОД и как их исправить?


Следующее обновление : OKIES ... с помощью этого и того, что я смог запустить xperf на моей Windows XP, и примеры дампов, которые я взял, прекрасно отображались на моем ноутбуке с Win7. Да, вам нужен компьютер с Win7 / Vista для просмотра дампов, сделанных в Windows XP. Однако теперь я сталкиваюсь со следующей проблемой: я могу включить трассировку xperf , xperf -on Latencyи теперь эта проблема возникает снова, когда трассировка xperf была включена, но как только мой DPC достигает 100%, Windows не запускает никаких новых процессов (или их запуск никогда не заканчивается) (например, открытое окно cmd остается отзывчивым , но каждый исполняемый файл, который вы пытаетесь вызвать, просто зависает (dirработает просто отлично, потому что это команда cmd) - я могу только предположить, что CreateProcessзависает с какой-то частью ядра). Теперь неспособность запустить какой-либо новый процесс означает, что я не могу запустить xperf -d dumpfile.etl, потому что , когда я вхожу в окно cmd, он просто зависает .

Кажется, мне здесь не повезло. Я бы скорее выкинул всю оснастку, чем начал вручную отключать драйверы ... :-)

Любые другие идеи приветствуются!


То есть, хотя теоретически Windows оставалась отзывчивой (например, курсор мыши двигался нормально, и я мог щелкнуть, и щелчок был в итоге распознан), на действия, предпринятые пользователем, реагировали только через несколько минут (буквально).

Пример. Нажатие клавиши Num-Lock на клавиатуре обычно приводит к переключению индикатора Num-Lock на клавиатуре. Это также относится и к моей полумерзшей машине, но только через минуту или две.

Однажды мне удалось запустить Process Explorer, и через несколько минут график системной информации четко показал 100% загрузку ЦП на красной линии (режим ядра), а зеленая линия осталась на нуле. В этом состоянии, хотя график все еще обновлялся на экране, машиной больше нельзя было управлять. (Ну, если вы не готовы подождать несколько минут после каждого клика.)

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

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


Примечание: также опубликовано на форумах sysinternals .

Мартин
источник
Одним из способов будет использование процесса ликвидации. В XP запустите программу MSCONFIG и перейдите на вкладку STARTUP и отключите все, затем перезагрузите компьютер и посмотрите, исправит ли это. Если это не так, попробуйте такую ​​программу, как AUTORUNS или HijackThis, и станьте более агрессивными в отношении устранения. Как только вы вернетесь к операциям, включите их по одному. 90% дерьма, которое запускается при запуске, не является обязательным, остальные 10% - это хлам :-)
Psycogeek
@Psycogeek - ценится. Я бы предпочел не делать этого, так как это заняло бы у меня дни, которых у меня нет :-)
Martin
ах, минуты, чтобы отключить запуск мусора, это дни, чтобы отключить драйверы устройств :-), когда я пытаюсь отточить вашу проблему, используя весь набор подсказок, это на самом деле звучит больше как вирус. но может легко быть какое-то устройство, которое не отвечает. Есть какие-нибудь вещи, застрявшие снаружи, которые вы можете временно удалить? Вы проверили проверку дисков, как, скажем, SMART-тест дисков. чтобы увидеть, есть ли у вас какие-либо подсказки от этого?
Psycogeek
Хорошо, теперь (dpc) мне придется проверить материал здесь: superuser.com/q/202254/50211 и посмотреть, смогу ли я докопаться до сути.
Мартин
Каков был результат?
Stej

Ответы:

2

Вы можете узнать, какая процедура DPC вызывает зависание, с помощью такого инструмента, как LatencyMon ( http://www.resplendence.com/latencymon ). Просто найдите процедуру DPC, занимающую самое большое общее время.

ZERO3
источник
Ясно, что LatencyMon не работает в Windows XP. И вопрос о проблеме производительности в системе Windows XP.
Эдвард
Я не знал об этом - спасибо. Мое предложение все еще то же самое - просто используйте другую программу вместо этого. Один из примеров: DPC Latency Checker ( thesycon.de/deu/latency_check.shtml ).
Zero3
На самом деле, функции LatencyMon намного лучше / проще в использовании для конечных пользователей, чем Latency Checker. Система анализа LatencyMon и обеспечивает очень подробную информацию, до уровня, который драйвер потребляет больше всего ресурсов, которые оказывают худшее влияние на производительность системы. С другой стороны, Latency Checker просто отображает график, который дает вам только самую основную информацию. Это ваша система вне задержки DPC или нет. Дальнейшие работы все по вашему. У меня проблемы с поиском аналогичного / похожего инструмента для XP, который работает так же, как LatencyMon.
Эдвард