Bagaimana saya bisa mengetahui apa yang menyebabkan gangguan pada Windows?

37

Kadang-kadang saya menemukan server (Windows 2003 dan 2008) dengan waktu interupsi prosesor% tinggi. Apakah ada cara untuk melihat program atau perangkat apa yang menyebabkan interupsi?

terima kasih
sumber

Jawaban:

41

Setelah menggali dokumentasi (berdasarkan jawaban lain di sini), inilah proses yang akhirnya saya gunakan:

  1. Tangkap log ETW masalah

    Cara termudah untuk melakukan ini adalah menggunakan Windows Performance Recorder . Saya tidak yakin kapan pertama kali muncul, tetapi tampaknya dibangun pada versi Windows terbaru. Atur profil menjadi CPU usage.

    Perekam Kinerja Windows

    atau, menggunakan prompt perintah yang ditinggikan, navigasikan ke folder yang berisi itu dan gunakan alat baris perintah xperf:

    xperf -on base+interrupt+dpc
    

    Catatan, Anda harus menutup Process Monitor atau aplikasi lain yang menggunakan ETW atau Anda akan mendapatkan kesalahan berikut: xperf: error: NT Kernel Logger: Cannot create a file when that file already exists. (0xb7).

  2. Hentikan pelacakan / simpan log

    xperf -d interrupt_trace.etl
    
  3. Buka jejak dalam Windows Performance Analyzer(bagian dari Windows Performance Toolkit); beberapa tempat menyebutkan menggunakan xperfviewsebagai gantinya.

  4. Rentangkan Computation-> CPU Usage (Sampled)-> DPC and ISR Usage by Module, Stack, klik kanan danadd graph to analysis view

    Penganalisa Kinerja Windows

  5. Ini menunjuk langsung ke pengemudi yang bersangkutan. Dalam hal ini, HDAudBus.sys menggunakan 10,82% cpu saya yang konstan melalui interupsi, yang persis seperti yang ditunjukkan oleh Process Explorer kepada saya.

Dave Andersen
sumber
Yang bagus! Bagus sekali.
Michal Sokolowski
Diterangkan dengan baik. Dalam kasus saya, ternyata itu adalah audiodg.exe. Begitu saya membunuhnya, DPC hampir tidak menghasilkan apa-apa. Saya menemukan detail tambahan tentang cara mengatasi ini di sini: windows-exe-errors.com/…
CJBS
Satu koreksi - Anda perlu memperluas Komputasi-> Penggunaan CPU (Sampel) - "Penggunaan CPU" tidak jelas.
Bruce Dawson
Dalam kasus saya, saya memiliki 10% DPC di Task Manager, tetapi sebagian besar adalah ntoskrnl.exe dalam penelusuran. Namun, memperluas tumpukan modul itu mengungkapkan layanan pihak ke-3 "RfeCo10X64.sys", yang merupakan bagian dari Killer Performance Suite. Saya menghapus instalasi perangkat lunak itu (beberapa sistem prioritas jaringan yang melakukan kebalikan dari apa yang dicoba) dan masalah saya terpecahkan.
Chris
Apakah ini berfungsi pada Windows 10? Adakah alat lain yang tersedia? Saya tidak ingin menginstal file GiB dari seluruh paket.
diketahui123
4

Jika Anda dapat menangani alat sistem tingkat rendah;

Windows Performance Analyzer (WPA)

Windows Performance Analyzer (WPA) adalah seperangkat alat pemantauan kinerja yang digunakan untuk menghasilkan profil kinerja yang mendalam dari sistem operasi dan aplikasi Microsoft Windows.

Setelah Anda belajar cara menggunakan xperf; Periksa;

Tindakan DPC / ISR

Tindakan DPC / ISR menghasilkan laporan teks yang merangkum berbagai metrik tentang DPC dan ISR. Penggunaan untuk tindakan ini adalah:

Salin Kode -a dpcisr [-dpc -isr-ringkasan ]interval [n] -bucket [n] -rentang T1 T2]

Pilihan

Deskripsi

dpc

Tampilkan statistik untuk DPC saja

isr

Tampilkan statistik hanya untuk ISR

ringkasan

Tampilkan ringkasan laporan

interval [dt]

Tampilkan laporan penggunaan untuk interval dt, standarnya adalah 1 detik

ember [dt]

Tampilkan histogram untuk interval dt, standarnya adalah 2 detik

kisaran T1 T2

Tampilkan penundaan antara T1 dan T2

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

dan ISR. Jika tidak ada jenis laporan yang ditentukan, standarnya adalah untuk mencetak ketiga jenis laporan.

RandomNickName42
sumber
3

Inilah artikel terbaik yang saya temukan tentang cara melakukan ini, dengan tutorial, tangkapan layar, dan tautan unduhan ke alat yang relevan:

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

Syclone0044
sumber
1
Selamat Datang di Kesalahan Server! Secara umum kami menyukai jawaban di situs untuk dapat berdiri sendiri - Tautan bagus, tetapi jika tautan itu putus, jawabannya harus memiliki informasi yang cukup untuk tetap membantu. Silakan pertimbangkan untuk mengedit jawaban Anda untuk memasukkan lebih detail. Lihat FAQ untuk info lebih lanjut.
slm
0

Lihatlah Windows Process Explorer:

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

Itu akan membantu.

davey
sumber
2
Process Explorer menunjukkan berapa banyak waktu prosesor yang dihabiskan untuk melayani interupsi, tetapi tidak, sejauh yang saya tahu, menyediakan cara untuk menentukan apa yang menyebabkan interupsi.
jlupolt