ในคอมพิวเตอร์เครื่องหนึ่งที่ติดตั้ง Windows 10 ใหม่ ผู้ใช้เริ่มบ่นว่าวางสายอย่างต่อเนื่องและระบบปฏิบัติการทำงานช้า ตัวจัดการงานแสดงให้เห็นว่าประมาณ 50% ของทรัพยากร CPU ถูกใช้โดย ระบบ (ntoskrnl.exe ) กระบวนการ. ในบทความนี้ ฉันจะพยายามอธิบายวิธีการวินิจฉัยหลักของการใช้ CPU สูงโดยกระบวนการต่างๆ และวิธีค้นหาส่วนประกอบ Windows ที่มีปัญหาหรือไดรเวอร์ระบบ
สถานการณ์ที่กระบวนการของระบบใช้ทรัพยากร CPU มากกว่าครึ่งหนึ่งของระบบไม่ปกติ Ntoskrnl.exe เป็นไฟล์ปฏิบัติการของเคอร์เนล OS เป็นกระบวนการของระบบหลัก เคอร์เนล OS เรียกใช้ไดรเวอร์ระบบของอุปกรณ์ ซึ่งน่าจะเป็นสาเหตุของปัญหา (ไม่ใช่ไดรเวอร์ทั้งหมดที่ได้รับการทดสอบอย่างถูกต้องโดยนักพัฒนาฮาร์ดแวร์)
ตามกฎแล้ว ปัญหาการรั่วไหลของรหัสไดรเวอร์และการใช้งาน CPU หน่วยความจำหรือดิสก์ทรัพยากรสูงปรากฏขึ้นหลังจากการติดตั้งฮาร์ดแวร์ใหม่ ไดรเวอร์เวอร์ชันใหม่ (รวมถึงการอัปเดตไดรเวอร์อัตโนมัติ ซึ่งสามารถปิดใช้งานได้) หรือหลังจากอัปเดต Windows
เคล็ดลับ . ในบางกรณี CPU และหน่วยความจำที่มีภาระงานสูงอาจทำให้เกิดกระบวนการบีบอัดข้อมูลได้เพื่อทำความเข้าใจว่าไดรเวอร์หรือโมดูลใดทำให้เกิดการใช้งาน CPU สูง คุณสามารถใช้เครื่องมือฟรี Process Explorer . ดาวน์โหลดและเรียกใช้ในฐานะผู้ดูแลระบบ
ค้นหา ระบบ ในรายการกระบวนการที่ทำงานอยู่ ให้คลิกขวาและเปิดคุณสมบัติ .
ไปที่ กระทู้ แท็บ เรียงลำดับรายการโมดูลที่โหลดโดยเคอร์เนลตามอัตราการใช้งาน CPU (คอลัมน์ CPU) ใน ที่อยู่เริ่มต้น คอลัมน์ชื่อส่วนประกอบหรือไดรเวอร์ปรากฏขึ้นซึ่งทำให้มีภาระงานสูง (ภาพหน้าจอด้านล่างไม่ได้มาจากระบบที่มีปัญหาในกรณีของฉันมันเป็นกระบวนการ ntoskrnl.exe)
หากต้องการค้นหาไดรเวอร์ที่ทำให้โหลด CPU สูง คุณสามารถใช้เครื่องมือของ Microsoft kernrate.exe ได้ฟรี (ผู้ชมเคอร์เรต). เครื่องมือนี้เป็นส่วนหนึ่งของ WDK (ชุดอุปกรณ์ Windows) หลังจากการติดตั้ง WDK คุณจะพบเครื่องมือในโฟลเดอร์ …\Tools\Other\amd64
เรียกใช้ kernrate.exe ไม่มีพารามิเตอร์และรอจนกว่าข้อมูลจะถูกรวบรวม (10-15 นาที) จากนั้นปิดเครื่องมือโดยกด Ctrl-C ดูรายการโมดูลในผลลัพธ์สำหรับโหมดเคอร์เนล มาตรา.
อย่างที่คุณเห็น ในตัวอย่างของเรา b57nd60x โมดูลทำให้เกิดการใช้งาน CPU สูง ใช้ Google หรือ Sigcheck เครื่องมือ (ดูตัวอย่างการใช้ Sigcheck เพื่อตรวจหาไฟล์ไดรเวอร์ที่เกี่ยวข้องกับโมดูล) คุณสามารถตรวจพบว่าปัญหาเกิดจากไดรเวอร์ Broadcom NetXtream Gigabit Ethernet NDIS6.0
คุณยังสามารถวิเคราะห์การใช้งาน CPU ระหว่างการบู๊ตระบบโดยใช้ Windows Performance Toolkit (WPT) คุณต้องติดตั้ง WPT และเรียกใช้การรวบรวมข้อมูลใน Windows Perfomance Recorder (สามเหลี่ยมระดับแรก + การใช้ CPU -> เริ่ม) คอนโซลกราฟิก
หรือเริ่มเก็บข้อมูลเพื่อวิเคราะห์โดยใช้คำสั่ง :
xperf -on latency -stackwalk profile -buffersize 1024 -MaxFile 256 -FileMode Circular && timeout -1 && xperf -d cpuusage.etl
คุณต้องบันทึกไฟล์และเปิดใน Windows Performance Analyzer (WPA) ขยายสแต็กกระบวนการระบบ ในตัวอย่างนี้ คุณจะเห็นว่า athrx.sys ไดรเวอร์ (Atheros Wireless Network Adapter) ทำให้ CPU โหลดสูง
ดังนั้น ตรวจพบไดรเวอร์ที่มีปัญหา อะไรต่อไป?
ในการแก้ปัญหา ให้ติดตั้งไดรเวอร์เวอร์ชันที่ใหม่กว่า (หรือเก่ากว่า) หรือปิดใช้งาน (ยกเลิกการเชื่อมต่อ) ฮาร์ดแวร์โดยสมบูรณ์ หากปัญหายังคงอยู่ในเวอร์ชันไดรเวอร์ใดๆ ไดรเวอร์ที่อัพเดตสามารถทดสอบความเครียดเพิ่มเติมได้โดยใช้ Driver Verifier