Иногда я сталкиваюсь с серверами (Windows 2003 и 2008) с высоким процентом прерываний процессора. Есть ли способ узнать, какая программа или устройство вызывает прерывания?
источник
Иногда я сталкиваюсь с серверами (Windows 2003 и 2008) с высоким процентом прерываний процессора. Есть ли способ узнать, какая программа или устройство вызывает прерывания?
После прочтения документации (на основе других ответов здесь), этот процесс я закончил с помощью:
Захват ETW журнала проблемы
Самый простой способ сделать это - использовать Windows Performance Recorder . Я не уверен, когда он появился впервые, но, похоже, он встроен в последние версии Windows. Установите профиль в CPU usage
.
или с помощью командной строки с повышенными привилегиями перейдите в папку, в которой она находится, и используйте инструмент командной строки xperf:
xperf -on base+interrupt+dpc
Обратите внимание: вам нужно закрыть Process Monitor или любое другое приложение, использующее ETW, иначе вы получите следующую ошибку: xperf: error: NT Kernel Logger: Cannot create a file when that file already exists. (0xb7).
Прекратить трассировку / сохранить журнал
xperf -d interrupt_trace.etl
Откройте трассировку в Windows Performance Analyzer
(часть Windows Performance Toolkit); в некоторых местах упоминается использование xperfview
вместо.
Разверните Computation
-> CPU Usage (Sampled)
-> DPC and ISR Usage by Module, Stack
, щелкните правой кнопкой мыши иadd graph to analysis view
Это указывало прямо на водителя, о котором идет речь. В этом случае HDAudBus.sys использует постоянные 10,82% моего процессора через прерывания, что и было, что мне показывал Process Explorer.
Если вы можете работать с низкоуровневыми системными инструментами;
После того, как вы научитесь использовать xperf; проверять, выписываться;
источник
Вот лучшая статья, которую я нашел о том, как это сделать, с учебными пособиями, скриншотами и ссылками на скачивание соответствующих инструментов:
http://www.msfn.org/board/topic/140263-how-to-get-the-cause-of-high-cpu-usage-by-dpc-interrupt/
источник
Взгляните на Windows Process Explorer:
http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
Это должно помочь.
источник
Два замечательных инструмента - LatencyMon и DPC Latency Checker .
источник