ฉันจะทราบได้อย่างไรว่าเกิดอะไรขึ้นกับการขัดจังหวะบน Windows


36

บางครั้งฉันเจอเซิร์ฟเวอร์ (Windows 2003 และ 2008) ที่มีการขัดจังหวะตัวประมวลผล% สูง มีวิธีดูว่าโปรแกรมหรืออุปกรณ์ใดทำให้เกิดการขัดจังหวะหรือไม่

คำตอบ:


41

หลังจากขุดเอกสาร (ขึ้นอยู่กับคำตอบอื่น ๆ ที่นี่) นี่คือกระบวนการที่ฉันใช้:

  1. จับภาพบันทึก ETW ของปัญหา

    วิธีที่ง่ายที่สุดที่จะทำเช่นนี้คือการใช้Windows ประสิทธิภาพบันทึก ฉันไม่แน่ใจว่าเมื่อมันปรากฏตัวครั้งแรก แต่ดูเหมือนว่าจะถูกสร้างขึ้นใน Windows รุ่นล่าสุด CPU usageตั้งค่าโปรไฟล์เพื่อ

    บันทึกประสิทธิภาพของ Windows

    หรือใช้พรอมต์คำสั่งยกระดับนำทางไปยังโฟลเดอร์ที่มีและใช้เครื่องมือบรรทัดคำสั่ง xperf:

    xperf -on base+interrupt+dpc
    

    หมายเหตุคุณจะต้องปิดการตรวจสอบกระบวนการหรือแอพอื่น ๆ ที่ใช้ 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 แสดงให้ฉันเห็น


ทำได้ดีนี่! ทำได้ดีมาก
Michal Sokolowski

อธิบายได้ดี ในกรณีของฉันมันกลายเป็น audiodg.exe ทันทีที่ฉันฆ่ามัน DPCs ก็แทบจะไม่เหลืออะไรเลย ฉันพบรายละเอียดเพิ่มเติมเกี่ยวกับวิธีแก้ไขปัญหานี้ได้ที่นี่: windows-exe-errors.com/ ...
CJBS

การแก้ไขเดียว - คุณต้องขยายการคำนวณ -> การใช้งาน CPU (ตัวอย่าง) - "การใช้งาน CPU" ไม่ชัดเจน
Bruce Dawson

ในกรณีของฉันฉันมี DPC 10% ในตัวจัดการงาน แต่ส่วนใหญ่มันเป็น ntoskrnl.exe ในการติดตาม อย่างไรก็ตามการขยายสแต็คของโมดูลนั้นได้เปิดเผยบริการบุคคลที่สาม "RfeCo10X64.sys" ซึ่งเป็นส่วนหนึ่งของ Killer Performance Suite ฉันถอนการติดตั้งซอฟต์แวร์นั้น (ระบบการจัดลำดับความสำคัญของเครือข่ายบางอย่างที่ทำตรงข้ามกับที่พยายามทำ) และปัญหาของฉันได้รับการแก้ไขแล้ว
Chris

ใช้ได้กับ 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

แสดงสถิติสำหรับ ISR เท่านั้น

สรุป

แสดงรายงานสรุป

ช่วงเวลา [dt]

แสดงรายงานการใช้งานสำหรับช่วงเวลาของ dt ค่าเริ่มต้นคือ 1 วินาที

bucket [dt]

แสดงฮิสโตแกรมสำหรับช่วงเวลาของ 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-cause-of-high-cpu-usage-by-dpc-interrupt/


1
ยินดีต้อนรับสู่ Server Fault! โดยทั่วไปเราชอบคำตอบในเว็บไซต์เพื่อให้สามารถยืนได้ด้วยตัวเอง - ลิงค์นั้นดี แต่ถ้าลิงค์นั้นเคยทำลายคำตอบควรมีข้อมูลเพียงพอที่จะยังคงเป็นประโยชน์ โปรดพิจารณาแก้ไขคำตอบของคุณเพื่อรวมรายละเอียดเพิ่มเติม ดูคำถามที่พบบ่อยสำหรับข้อมูลเพิ่มเติม
slm


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.