ในการวิเคราะห์ปัญหาการใช้งาน CPU คุณควรใช้ Event Tracing สำหรับ Windows (ETW) เพื่อจับข้อมูล / โปรไฟล์การสุ่มตัวอย่างของ CPU
เพื่อรวบรวมข้อมูลการติดตั้งเครื่องมือประสิทธิภาพ Windowsซึ่งเป็นส่วนหนึ่งของSDK ของ Windows
ของ Windows 10 WPT สามารถใช้กับ Windows 8 / Server 2012, Windows 8.1 Server / 2012R2 และ Windows 10 / เซิร์ฟเวอร์ 2016 หากคุณยังคงใช้ Windows 7 ใช้SDK / WPT กับรูปร่าง 15086
(สามารถยกเลิกการเลือกรายการอื่น ๆ ทั้งหมด)
ตอนนี้ใช้WPRUI.exe
เลือกFirst Level
ภายใต้ทรัพยากรเลือกการใช้งาน CPUและคลิกที่เริ่มต้น
ตอนนี้จับการใช้งาน CPU 1 นาที หลังจาก 1 นาทีคลิกที่บันทึก
ตอนนี้วิเคราะห์ไฟล์ ETL ที่สร้างขึ้นด้วย Windows Performance AnalyzerโดยการลากและวางCPU Usage (sampled)
กราฟไปที่analysis pane
และสั่งซื้อคอลัมน์ตามที่คุณเห็นในภาพ:
ภายใน WPA ให้โหลดสัญลักษณ์ดีบักและขยาย Stack ของกระบวนการ SYSTEM ในการสาธิตนี้การใช้งาน CPU มาจากไดรเวอร์ nVIDIA
ในการสาธิตต่อไปนี้การใช้งาน CPU มาจากไดรเวอร์ Realtek NIC:
เมื่อคุณเห็นสายเช่นntoskrnl.exe! Vi KeTrimWorkerThreadRoutine, ntoskrnl.exe! Mm Verifier TrimMemory, ntoskrnl.exe! Verifier KeLeaveCriticalRegionซึ่งหมายความว่าคุณเปิดใช้งาน Verifier ของไดรเวอร์แล้ว สิ่งนี้ยังทำให้ประสิทธิภาพการทำงานแย่ลงและทำให้การใช้งานระบบสูง ปิดการใช้งานไดรเวอร์ Verifierและรีบูต
ในการสาธิตนี้ไดรเวอร์iai2ce.sys
( ไดรเวอร์Intel Serial IO GPIO Controller) ทำให้มัน:
ในตัวอย่างนี้การใช้งาน CPU มาจากไฟล์rtsuvc.sys
ที่ดูเหมือนจะเป็นRealtek UVC webcam Driver
การสาธิตนี้แสดงให้เห็นว่าไดรเวอร์ Bitdefender ignis.sys
ในตัวอย่างต่อไปนี้การใช้งาน CPU นั้นถูกควบคุมโดยไดรเวอร์เครือข่ายของ Broadcom bcmwl664.sys
เมื่อคุณเห็นntoskrnl.exe!MiZeroWorkerPages
ว่าเป็นสาเหตุก็เป็นเรื่องยาก นี่หมายถึงฟังก์ชั่นของเคอร์เนลที่เป็นศูนย์หน่วยความจำก่อนที่จะสามารถใช้งานได้อีกครั้งทำให้เกิดการใช้งาน CPU สูง:
ไม่มีวิธีที่แท้จริงในการตรวจสอบว่ากระบวนการใดเป็นสาเหตุ แต่ฉันรู้ว่า Chrome สามารถทำให้เกิดขึ้นได้หากคุณเปิดใช้งานการเร่งด้วยฮาร์ดแวร์ใน Chrome ดังนั้นหากคุณเห็นสิ่งนี้และใช้ Chrome ให้ปิดการเร่งด้วยฮาร์ดแวร์ใน Chrome
เมื่อคุณเห็นผู้ntoskrnl.exe! RtlpGenericRandomPatternWorker, Ntoskrnl.exe! RtlpTestMemoryRandomUpโทร
การใช้งาน CPU มาจากเคอร์เนลเพื่อทดสอบหน่วยความจำสำหรับปัญหา (memtest) การใช้งานนี้จะถูกเรียกผ่านงานการบำรุงรักษาไม่ได้ใช้งานของ Windows 8.1 / 10 คุณสามารถใช้ Task Scheduler เพื่อปิดการใช้งานว่าง
ใน Windows 10 งานที่เรียกว่า RunFullMemoryDiagnostics ภายใต้ไมโครซอฟท์> ของ Windows> MemoryDiagnostic> RunFullMemoryDiagnostic
ในกรณีนี้การใช้งาน CPU ดูเหมือนว่ามาจากData Deduplication
Feature ( dedup.sys!DdpPostCreate
) ของ Windows Server:
ในการสาธิตนี้การใช้งาน CPU เกิดจากไดรเวอร์การ์ด WIFI athrx.sys
ค้นหาการอัปเดตไดรเวอร์หากคุณเห็นสิ่งนี้
ในการสาธิตต่อไปนี้เกี่ยวข้องกับไดรเวอร์ citrix:
ดังนั้นติดต่อ IT ของคุณสำหรับวิธีแก้ปัญหา Citrix
ในการสาธิตนี้ฟังก์ชันusbhub.sys!UsbhPortRecycle
ทำให้เกิดการใช้งาน CPU:
การเปลี่ยนพอร์ต USB2.0 เป็นความเร็ว 1.1หรือการเชื่อมต่อไดรฟ์ USB ไปยังพอร์ต USB 2.0 อื่น ๆ ช่วยผู้ใช้
ในกรณีนี้การใช้งานระบบจำนวนเล็กน้อยมาจากไดรเวอร์ Acronis tdrpm251.sys
:
ในการสาธิตนี้การใช้งาน CPU และntoskrnl.exe!KeAcquireSpinLockRaiseToDpc
ntoskrnl.exe!KeReleaseSpinLock
ดังนั้นไดรเวอร์จึงใช้SpinLocksอย่างหนัก ปิดการใช้งานอุปกรณ์ / ไดรเวอร์บางอย่างจนกว่าคุณจะเห็นอุปกรณ์ที่เป็นสาเหตุ
ในกรณีนี้การใช้งาน CPU เกิดจากไดรเวอร์ L1C62x64.sys
นี่คือqualcomm atheros AR8171/8175 PCI-E gigabit Ethernet
ไดรเวอร์ ดังนั้นอัปเดตไดรเวอร์ถ้าคุณเห็นมันในกอง
ที่นี่การใช้งาน CPU มาจากการสแกนไฟล์โฮสต์ (netbt.sys! DelayedScanLmHostFile)
ตรวจสอบให้แน่ใจว่าไฟล์โฮสต์ของคุณไม่ใหญ่เกินไปเพื่อหลีกเลี่ยงการใช้งานนี้
ในกรณีนี้การใช้งาน CPU มาSRTSP64.SYS
จากไซแมนเทค
อัปเดตผลิตภัณฑ์ Symantec ที่คุณใช้เป็นเวอร์ชันล่าสุด
ที่นี่การใช้งาน CPU มาจากไดรเวอร์ AMD GPU (atikmdag.sys)
หากคุณเห็นสิ่งนี้ให้ไปที่ไซต์ AMD และรับไดรเวอร์ล่าสุดสำหรับการ์ด AMD ของคุณ
ที่นี่ไดรเวอร์ TMXPFlt.sys และ VsapiNt.sys ทำให้เกิดการใช้งาน CPU สูง
จากสิ่งที่ฉันเห็นไฟล์เหล่านั้นเป็นส่วนหนึ่งของชุด Trend Micro AV อัปเดตเครื่องมือหรือลบออก
ในตัวอย่างนี้การใช้งาน CPU มาจากฟังก์ชัน ntoskrnl.exe!MmGetPageFileInformation
ฟังก์ชันนี้รับข้อมูลเกี่ยวกับ pagefile
รูทีนคำอธิบาย: รูทีนนี้ส่งคืนข้อมูลเกี่ยวกับเพจไฟล์ที่แอ็คทีฟในปัจจุบัน
ปิดการใช้งาน pagefile รีบูตและเปิดใช้งานอีกครั้งและดูว่าสิ่งนี้แก้ไขได้หรือไม่ นอกจากนี้ยังนำบริการของอินเทล (Intel เช่นการป้องกันเนื้อหา Heci บริการ) ดูเหมือนว่าจะคงได้สำหรับผู้ใช้
ที่นี่คุณจะเห็นว่าไดรเวอร์Netwtw04.sys
( ไดรเวอร์Intel Wifi) เรียกใช้ฟังก์ชันflushCompleteAllPendingFlushRequests
และสิ่งนี้ทำให้เกิดการใช้งาน CPU สูง
เนื่องจากสัญลักษณ์การตรวจแก้จุดบกพร่องโหลดโปรแกรมควบคุมกล่องขาเข้าของ Windows ที่ใช้ เฉพาะที่นี่เราจะได้รับสัญลักษณ์การแก้ปัญหาเพื่อดู callstack flushCompleteAllPendingFlushRequests
ที่มีชื่อฟังก์ชั่น
ที่นี่คุณควรติดตั้งไดรเวอร์ล่าสุดจาก Intelเพื่อแก้ไข
กรณีที่ซับซ้อนที่สุดของการใช้งานระบบคือการใช้ ACPI.sys ใน callstack:
Line #, DPC/ISR, Module, Stack, Count, Process, Weight (in view) (ms), TimeStamp (s), % Weight
6, , , | |- ACPI.sys!ACPIWorkerThread, 40246, , 39.992,941063, , 4,13
7, , , | | ACPI.sys!RestartCtxtPassive, 40246, , 39.992,941063, , 4,13
8, , , | | ACPI.sys!InsertReadyQueue, 40246, , 39.992,941063, , 4,13
9, , , | | ACPI.sys!RunContext, 40246, , 39.992,941063, , 4,13
10, , , | | ntoskrnl.exe!KeReleaseSpinLock, 40246, , 39.992,941063, , 4,13
11, , , | | ntoskrnl.exe!KiDpcInterrupt, 40246, , 39.992,941063, , 4,13
12, , , | | ntoskrnl.exe!KiDispatchInterruptContinue, 40246, , 39.992,941063, , 4,13
13, , , | | ntoskrnl.exe!KxRetireDpcList, 40246, , 39.992,941063, , 4,13
14, , , | | ntoskrnl.exe!KiRetireDpcList, 40246, , 39.992,941063, , 4,13
15, , , | | |- ntoskrnl.exe!KiExecuteAllDpcs, 40198, , 39.945,173325, , 4,13
16, , , | | | |- ACPI.sys!ACPIInterruptDispatchEventDpc, 27565, , 27.408,930428, , 2,83
17, , , | | | | |- ACPI.sys!ACPIGpeEnableDisableEvents, 24525, , 24.384,921620, , 2,52
18, , , | | | | | ACPI.sys!ACPIWriteGpeEnableRegister, 24525, , 24.384,921620, , 2,52
19, , , | | | | | |- hal.dll!HalpAcpiPmRegisterWrite, 24421, , 24.281,015516, , 2,51
20, , , | | | | | | |- hal.dll!HalpAcpiPmRegisterWritePort, 24166, , 24.027,316013, , 2,48
นี่เป็นข้อแก้ตัวยากมาก ในหัวข้อ sysinternalsฉันระบุคำแนะนำ:
- ตรวจสอบให้แน่ใจว่า CPU ไม่ร้อนเกินไปเนื่องจากฝุ่นในพัดลม CPU
- อัพเดตหรือแฟลช BIOS / UEFI (เดียวกัน) อีกครั้ง
- โหลดการตั้งค่าเริ่มต้น BIOS / UEFI
- ตรวจสอบให้แน่ใจว่าแบตเตอรี่ไม่เสียหายถอดแบตเตอรี่ออกจากโน้ตบุ๊กหรือปิดใช้งานแบตเตอรี่ในตัวจัดการอุปกรณ์
- เปลี่ยนจัมเปอร์ บนแคดดี้ HDDหากคุณเปลี่ยนไดรฟ์ DVD / Blue-Ray เป็นแคดดี้เพื่อติดตั้ง SSD ถัดจาก HDD เก่าของคุณ
ในการสาธิตต่อไปนี้ไดรเวอร์ Intel HD igdkmd64.sys
ในรุ่น. 4574 สำหรับ Intel HD 630 ทำให้เกิดปัญหา:
การแก้ปัญหาคือการอัพเดทไดรเวอร์ด้วยรุ่นอย่างน้อย. 4590
ในกรณีต่อไปนี้การใช้งาน CPU ของกระบวนการ SYSTEM นั้นเกิดจากไดรเวอร์ stdriverx64.sys
นี้น่าจะเป็นคนขับรถเสียงสตรีมมิ่ง ดังนั้นให้อัพเดตซอฟต์แวร์ / ไดรเวอร์นี้หากคุณเห็นสิ่งนี้ใน WPA
หากคุณเห็นไดรเวอร์ที่เรียกว่าrisdxc64.sys
callstack ของระบบซึ่งเป็นสาเหตุของการใช้งาน CPU สูงให้อัพเดตไดรเวอร์Ricoh PCIe SDXC / MMC Host Controllerหรือปิดการใช้งานเครื่องอ่านการ์ด SD ในตัวจัดการอุปกรณ์หากไม่มีการอัพเดทไดรเวอร์แก้ไข
เครื่องอ่านการ์ด SD นี้ดูเหมือนจะติดตั้งมากับอุปกรณ์ Lenovo หลายรุ่น
ผู้ใช้ @stevemidgley พบปัญหาใหม่ของการใช้ CPU ที่สูงขึ้นด้วย Wdf01000.sys!FxSystemWorkItem::_WorkItemThunk
ที่นี่คุณสามารถดูไดรเวอร์ UDE.sys ที่ทำให้เกิด
ในสัญลักษณ์ศูนย์กลาง
ฉันเห็นว่ามันเป็นของไดรเวอร์โมเด็มและข้อมูล PNP ของร่องรอยแสดงFibocom L850-GL
(LTE โมเด็ม) เป็นอุปกรณ์ที่เป็นไปได้:
และการแก้ปัญหาคือการปิดการใช้งานโมเด็มและอุปกรณ์ประกอบ USB ในการจัดการอุปกรณ์