ntoskrnl.exe! _misaligned_access กิน CPU จำนวนมากเมื่อไม่ได้ใช้งาน


5

กรุณาแนะนำสิ่งที่อาจก่อให้เกิดการใช้ซีพียูที่ไม่จำเป็นอธิบายไว้ด้านล่าง

อาการ:

  • เมื่อคอมพิวเตอร์ไม่มีการใช้งานกระบวนการของระบบจะเริ่มกินซีพียูประมาณ 30% หากมีการกดปุ่มใด ๆ หรือเลื่อนเมาส์จะหยุดลงในไม่กี่วินาที นี่เป็นเรื่องที่น่ารำคาญเนื่องจากเป็นโน้ตบุ๊กที่ค่อนข้างบางและการระบายความร้อนไม่ได้ออกแบบมาเพื่อการใช้งาน CPU ที่สูงอย่างต่อเนื่อง
  • ไม่เกิดขึ้นเมื่อใช้แบตเตอรี่
  • ดูเหมือนจะไม่เกี่ยวข้องกับแอนติไวรัสหรือการจัดทำดัชนีใหม่เนื่องจากมีกระบวนการที่แตกต่างได้ง่าย

สิ่งที่ฉันพบ:

  • กระบวนการเป็นระบบที่ PID อยู่เสมอ 4, คำอธิบายคือNT Kernel และระบบ
  • เมื่อตรวจสอบกระบวนการนี้ด้วยProcess Hacker (คลิกขวา / คุณสมบัติจากนั้นแท็บเธรด) ปรากฎว่ามีเธรดอยู่ในนั้นเรียกว่าntoskrnl.exe!_misaligned_access+0x3f0ซึ่งรับผิดชอบการใช้งาน CPU ที่ไม่จำเป็นทั้งหมดนี้ สามารถพบสิ่งเดียวกันได้กับแอปพลิเคชั่นสำรวจกระบวนการอื่น ๆ ที่อยู่ในชื่อกระบวนการจะเปลี่ยนทุกครั้งที่รีบูต แต่จะยังคงเหมือนเดิมระหว่างพวกเขา

    • ที่จริงแล้วมีหลายเธรดพร้อมกับคุณสมบัติเหล่านี้ แต่เสมอเหมือนกันใช้ CPU (PID เดียวกัน)
    • คลิกขวาและตรวจสอบให้กองนี้สำหรับหัวข้อนี้

      0, ntoskrnl.exe! KeIsAttachedProcess + 0x92e

      1, ntoskrnl.exe! KeWaitForMultipleObjects + 0x140f

      2, ntoskrnl.exe! KeWaitForMultipleObjects + 0xcb9

      3, ntoskrnl.exe! _misaligned_access + 0x5fd

      4, ntoskrnl.exe! RtlGetCompressionWorkSpaceSize + 0x1f0

      5, ntoskrnl.exe! KeSynchronizeExecution + 0x59d6

  • มีแท็บจัดการในหน้าต่างคุณสมบัติของกระบวนการเดียวกัน มีแถวนี้ซึ่งอาจเชื่อมต่อเธรดด้านบนเนื่องจากหมายเลขอ้างอิงเหมือนกับที่อยู่ในเธรดที่ทำงานผิดปกติ:

    • ประเภท: SymbolicLink, ชื่อ: \ GLOBAL ?? \ USB # VID_8087 & PID_8000 # 5 & 47f868 & 0 & 1 # {f18a0e88-c30c-11d0-8815-00a0c906bed8}, หมายเลขอ้างอิง: 0x3f0
  • ค้นหาอุปกรณ์ (VID 8087 และ PID 8000) ในตัวจัดการอุปกรณ์และเป็น Intel Generic USB Hub

  • ฉันไม่มีความคิดเพิ่มเติมว่าจะมองหาอะไร

รายละเอียดสภาพแวดล้อม:

  • Dell E7440 มีบางตันของซอฟแวร์ของเดลล์ติดตั้ง ฉันรู้ว่าปัญหาอาจเป็นไปได้ว่าองค์ประกอบ / ไดรเวอร์บางอย่างหายไป แต่ฉันยังไม่ต้องการติดตั้งรายการที่เป็นไปได้ทั้งหมด ตัวจัดการอุปกรณ์ไม่แสดงอุปกรณ์ใด ๆ ที่ไม่มีไดรเวอร์
  • Windows 8.1 Enterprise 64 บิตไม่ถูกแฮ็กพร้อมการอัปเดตที่เป็นไปได้ทั้งหมด ติดตั้งประมาณหนึ่งเดือนที่ผ่านมาจาก iso อย่างเป็นทางการติดตั้งอึไม่มากไม่มีข้อผิดพลาดหรือ BSODs ตั้งแต่นั้นมา
  • ไม่มีโปรแกรมป้องกันไวรัสนอกเหนือจากหน้าต่างที่สร้างขึ้นใน Security Essentials

ไม่นี่เป็นอย่างอื่นแน่นอน ใช้ xperf เพื่อติดตามการใช้งาน CPU: pastebin.com/pgE11HRD
magicandre1981

ขอบคุณสำหรับการตอบกลับ. ฉันมีวิธีใดที่จะกำหนดเวลานี้หรือไม่? ตั้งแต่ 3-5 นาทีแรกจะมีการบันทึกเฉพาะ idling ปกติสิ่งที่น่าสนใจก็จะตามมา
Alex Biro

ไม่เป็นไรฉันจะพยายามสร้างไฟล์แบตช์และกลับมาใหม่เมื่อฉันสามารถจับอะไรบางอย่างได้
Alex Biro

เพียงแค่เริ่มต้น ฉัน จำกัด ขนาดไฟล์ไว้ที่ 1GB เพื่อให้มีกิจกรรม 2 นาทีสุดท้าย ดังนั้นเมื่อคุณสังเกตเห็นปัญหาอีกครั้งให้รอสักครู่แล้วหยุดติดตาม
magicandre1981

มันทำงานอย่างไร คุณสามารถจับการใช้งาน CPU ในการติดตามได้หรือไม่
magicandre1981

คำตอบ:


4

การใช้งาน CPU นั้นเกิดจากการออกแบบ มันมาจากฟังก์ชั่นntoskrnl.exe!RtlScrubMemory/ /ntoskrnl.exe!RtlpGenericRandomPatternWorkerntoskrnl.exe!RtlpTestMemoryRandomUp

ป้อนคำอธิบายรูปภาพที่นี่

ฟังก์ชันนี้เขียนรูปแบบสุ่มไปที่ RAM เพื่อทดสอบ RAM เพื่อหาข้อผิดพลาด Windows ทำเช่นนี้ในระหว่างงานการดูแลรักษา Idle เพื่อปรับ Windows (การล้าง WinSxS, การเพิ่มประสิทธิภาพไฟล์. net ด้วย ngen)

เรียกใช้ Task Scheduler ไปที่ไมโครซอฟท์ -> Windows -> Task Scheduler เลือกIdle Maintenance,

ป้อนคำอธิบายรูปภาพที่นี่

disableทำคลิกขวาและเลือก

ป้อนคำอธิบายรูปภาพที่นี่


ถึงกระนั้นฉันก็ยังไม่แน่ใจว่าควรปิดการใช้งานคุณลักษณะทั้งหมดที่คุณกล่าวถึงโดยงานนี้หรือไม่พวกเขาอาจมีประโยชน์จริง ๆ และฉันสังเกตเห็นว่าบริการต่อต้านมัลแวร์เริ่มต้นจากสิ่งนี้ ดังนั้นฉันจะทำ googling เพิ่มเติมเกี่ยวกับการปิดใช้งานเฉพาะคุณสมบัติการขัดหน่วยความจำและจะพยายามกำหนดเวลาให้งานรันวันละ 1-2 ครั้งเท่านั้น ฉันพยายามเริ่มต้นด้วยตนเองและคุณสมบัติการขัดหน่วยความจำไม่เริ่มขึ้นในขณะที่คอมพิวเตอร์ไม่ได้ใช้งานและยังไม่มีประสิทธิภาพในการทำงานลดลงอย่างเห็นได้ชัดอื่น ๆ ในขณะที่ทำงาน
Alex Biro

เพียงแค่ติดตาม: บริการจะต้องปิดการใช้งานหลังจากรีบูต (โชคดีที่เกิดขึ้นค่อนข้างน้อย) เพราะงานที่ได้รับการเปิดใช้งานในระหว่างการบูต นอกจากนี้งานที่กำหนดเวลาไว้อื่นที่เรียกว่า "การบำรุงรักษาปกติ" จะเปิดใช้งานคุณลักษณะนี้ด้วยดังนั้นจึงต้องปิดการใช้งานด้วย บางครั้งฉันก็ปล่อยให้พวกเขาทำงานอยู่พักหนึ่งเพื่อที่ว่าหากงานเหล่านี้ทริกเกอร์กระบวนการที่มีประโยชน์จริง ๆ กระบวนการเหล่านี้ก็สามารถทำงานได้เช่นกัน
อเล็กซ์ Biro

2

น่าเสียดายที่ฉันไม่มีการตั้งค่านี้ในตัวกำหนดตารางเวลางานดังนั้นฉันจึงไม่มีอะไรให้ปิดการใช้งาน (ฉันใช้ Windows 10 b1607)

แต่สิ่งที่ช่วยได้จริงคือการเพิ่มค่า DWORD MaintenanceDisabled ด้วยค่า1ในคีย์นี้:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\Maintenance

หลังจากนี้การใช้งาน CPU ว่างของฉันหยุดอยู่ในระดับสูง

คุณสามารถดูรายละเอียดเพิ่มเติมได้ที่นี่: https://www.tenforums.com/tutorials/40119-enable-disable-automatic-maintenance-windows-10-a.html

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