Як я можу дізнатися, що викликає перебої в Windows?


37

Інколи я натрапляю на сервери (Windows 2003 та 2008) з високим відсотковим часом переривання процесора. Чи є спосіб побачити, яка програма чи пристрій викликає перебої?

Відповіді:


41

Після перегляду документації (на основі інших відповідей тут) це процес, який я закінчив:

  1. Захоплення журналу проблеми ETW

    Найпростіший спосіб зробити це за допомогою Windows Recorder Recorder . Я не впевнений, коли він з'явився вперше, але, здається, він вбудований в останні версії Windows. Встановіть профіль на CPU usage.

    Windows Performance Recorder

    або, використовуючи підвищений командний рядок, перейдіть до папки, яка містить його, та використовуйте інструмент командного рядка xperf:

    xperf -on base+interrupt+dpc
    

    Зауважте, вам потрібно буде закрити Process Monitor або будь-який інший додаток, який використовує ETW, або ви отримаєте таку помилку: xperf: error: NT Kernel Logger: Cannot create a file when that file already exists. (0xb7).

  2. Зупинити відстеження / збереження журналу

    xperf -d interrupt_trace.etl
    
  3. Відкрийте трасування в Windows Performance Analyzer(частина Windows Performance Toolkit); деякі місця згадують використання xperfviewзамість цього.

  4. Розгорніть Computation-> CPU Usage (Sampled)-> DPC and ISR Usage by Module, Stack, клацніть правою кнопкою миші таadd graph to analysis view

    Аналізатор продуктивності Windows

  5. Це вказувало право на питання, про який йде мова. У цьому випадку HDAudBus.sys використовує постійні 10,82% мого процесора через переривання, саме це і показувало мені Process Explorer.


Хороший! Дуже добре зроблено.
Міхал Соколовський

Добре пояснено. У моєму випадку це виявилося audiodg.exe. Як тільки я його вбив, ДПК перейшов майже до нічого. Тут я знайшов додаткові деталі, як вирішити це питання: windows-exe-errors.com/…
CJBS

Одне виправлення - вам потрібно розширити Computation-> CPU Usage (Sampled) - "CPU Usage" неоднозначний.
Брюс Доусон

У моєму випадку я мав 10% DPC у диспетчері завдань, але більша частина була в ntoskrnl.exe у сліді. Однак розширення стека цього модуля виявило сторонній сервіс "RfeCo10X64.sys", який був частиною програми Killer Performance Suite. Я видалив це програмне забезпечення (деяка система пріоритетності мережі, яка робила протилежне тому, що намагалася), і моя проблема була вирішена.
Кріс

Чи працює він у Windows 10? Будь-які інші інструменти доступні? Я не хочу встановлювати файли GiB всього пакету.
Невідомо123

4

Якщо ви можете працювати з системними інструментами низького рівня;

Аналізатор продуктивності Windows (WPA)

Windows Performance Analyzer (WPA) - це набір інструментів моніторингу продуктивності, які використовуються для створення поглиблених профілів продуктивності операційних систем та додатків Microsoft Windows.

Після того, як ви дізнаєтеся, як використовувати xperf; перевіряти;

Дія DPC / ISR

Дія DPC / ISR створює текстовий звіт, який підсумовує різні показники щодо DPC та ISR. Використання для цієї дії:

Копіювати код -a dpcisr [-dpc -isr -summary -interval [n] -bucket [n] -range T1 T2]

Варіант

Опис

dpc

Показати статистику лише для DPC

іср

Показати статистику лише для ISR

резюме

Показати підсумковий звіт

інтервал [дт]

Показати звіт про використання інтервалів dt, за замовчуванням - 1 секунда

відро [дт]

Показати гістограму для інтервалів dt, за замовчуванням - 2 секунди

діапазон T1 T2

Показати затримки між T1 і T2

If no data type is specified, default is to show report for both DPC

та ISR. Якщо тип звіту не вказаний, за замовчуванням слід надрукувати всі три види звіту.


3

Ось найкраща стаття, яку я знайшов, як це зробити, із підручниками, скріншотами та посиланнями на завантаження відповідних інструментів:

http://www.msfn.org/board/topic/140263-how-to-get-the- why-of-high-cpu-usage-by-dpc-interrupt/


1
Ласкаво просимо до помилки сервера! Як правило, нам подобаються відповіді на сайті, щоб мати можливість самостійно стояти - Посилання чудові, але якщо це посилання коли-небудь перерветься, відповідь повинна мати достатньо інформації, щоб вона все-таки була корисною. Будь ласка, подумайте про редагування своєї відповіді, щоб включити більше деталей. Див. Поширені запитання для отримання додаткової інформації.
slm

0

Погляньте на провідник Windows Process:

http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx

Це повинно допомогти.


2
Провідник процесів показує, скільки процесорного часу витрачається на обслуговування переривань, але він, наскільки я можу сказати, не дає способу визначення того, що викликає переривання.
jlupolt

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.