ผู้ใช้หลายคนร้องเรียนบน Reddit และฟอรัม Windows อื่นๆ เกี่ยวกับ Memory Leaks ที่เกี่ยวข้องกับ ntoskrnl.exe ผู้ใช้เหล่านี้รายงานการใช้งาน RAM และ CPU มากผิดปกติที่เกิดจากไฟล์ระบบนี้หรือเกี่ยวข้องกับมัน ผู้ที่มีกรณีรุนแรงบอกว่าพวกเขาได้ประสบกับ BSOD (Blue Screen of Death) ที่เกิดจาก Memory Dumps
บทความนี้จะบอกคุณว่าการจัดการหน่วยความจำทำงานอย่างไรบน Windows และ ntoskrnl.exe คืออะไรและทำหน้าที่อะไร เราจะให้เหตุผลว่าทำไม ntoskrnl.exe ถึงใช้พื้นที่หน่วยความจำมาก และวิธีแก้ไข
Ntoskrnl.exe คืออะไร และทำหน้าที่อะไร?
Windows 10 เป็นระบบปฏิบัติการขนาดใหญ่ แต่มันจัดการการดำเนินการหน่วยความจำได้ดีเพียงใด สิ่งนี้มาจาก ntoskrnl.exe memory handler Ntoskrnl.exe (สำหรับ Windows NT Operating System Kernel) หรือที่รู้จักว่า Kernel Image เป็นไฟล์แอปพลิเคชันระบบที่ให้ Kernel และ Executive Layers ของ Windows NT Kernel Space และรับผิดชอบบริการระบบต่างๆ เช่น Hardware Virtualization, Process และ Memory Management ทำให้มันเป็นส่วนพื้นฐานของระบบ มันประกอบด้วย Cache Manager, Executive, Kernel, Security Reference Monitor, Memory Manager, และ Scheduler
นั่นคือเหตุผลที่ Ntoskrnl.exe เป็นไฟล์ระบบที่ได้รับการป้องกันอย่างดี การป้องกันระบบหมายความว่ามันจะไม่ถูกลบหรือเสียหายง่าย
นี่คือวิธีการทำงานของ Memory Management งานหนึ่งถูกโหลดไปยังหน่วยความจำ (RAM) พร้อมกับโปรแกรมที่จะดำเนินการงานนี้ นี่คือส่วน Fetch CPU ถอดรหัส ดำเนินการงาน และบันทึกผลลัพธ์ไปยังหน่วยความจำซึ่งอาจถูกบันทึกลงดิสก์โดยโปรแกรมที่โหลดอยู่ ส่วน Execution จะเข้าถึงอุปกรณ์หลายอย่าง รวมถึง GPU, CPU, Disk Space (ROM หรือ HDD, SSD ฯลฯ) Network Devices และอุปกรณ์อื่นๆ มากมาย ขึ้นอยู่กับงานที่กำลังดำเนินการ เมื่อโปรแกรมปิด มันจะถูก Unload จากหน่วยความจำ (RAM) พร้อมกับข้อมูลที่มันกำลังประมวลผล พื้นที่ว่างตอนนี้พร้อมสำหรับงานอื่นๆ
เหตุผลที่ Ntoskrnl.exe ใช้ Disk Space, Memory และ CPU มาก
หาก ntoskrnl.exe จัดการหน่วยความจำ ทำไมมันจึงใช้หน่วยความจำทั้งหมดและ CPU มากมาย? นี่คือเหตุผลที่ทราบกันดีว่าทำไมสิ่งนี้เกิดขึ้น กรณีรุนแรงมักเกิดจาก Memory Leaks ที่เกิดจากฮาร์ดแวร์และมัลแวร์
Compressed Memory ใหม่บน Windows 10
อะไรทำให้ Windows 7 เร็วขนาดนี้? คำตอบอยู่ที่คุณสมบัติ ntoskrnl.exe ใหม่ การใช้หน่วยความจำมากผิดปกตินี้ถูกสร้างขึ้นใน Windows 10 ไม่เหมือนระบบปฏิบัติการอื่นๆ Microsoft ได้อธิบายเรื่องนี้หลายครั้งให้ผู้ใช้ Windows ได้ยิน
หลังการเปิดตัว Windows 10 Build 10525 Microsoft พูดว่า: ใน Windows 10 เราได้เพิ่มแนวคิดใหม่ใน Memory Manager เรียกว่า Compression Store ซึ่งเป็นคอลเลกชันในหน่วยความจำของหน้าที่บีบอัดแล้ว หมายความว่าเมื่อ Memory Manager รู้สึกแรงกดดันด้านหน่วยความจำ มันจะบีบอัดหน้าที่ไม่ได้ใช้แทนที่จะเขียนลงดิสก์ สิ่งนี้ลดปริมาณหน่วยความจำที่ใช้ต่อโปรเซส ทำให้ Windows 10 สามารถรักษาแอปพลิเคชันมากขึ้นในหน่วยความจำทางกายภาพได้ในเวลาเดียวกัน สิ่งนี้ยังช่วยให้การตอบสนองดีขึ้นทั่ว Windows 10 Compression Store อยู่ใน Working Set ของ System Process เนื่องจาก System Process เก็บ Store ไว้ในหน่วยความจำ Working Set ของมันจึงใหญ่ขึ้นพอดีเมื่อหน่วยความจำถูกทำให้พร้อมใช้งานสำหรับโปรเซสอื่นๆ สิ่งนี้มองเห็นได้ใน Task Manager และเป็นเหตุผลที่ System Process ดูเหมือนจะ ใช้หน่วยความจำมากกว่าเวอร์ชันก่อนหน้า
การใช้หน่วยความจำมากจึงเป็นลักษณะที่ Windows 10 สร้างขึ้นมา แต่บางครั้งอาจเข้าใจผิดว่าเป็น Memory Leak Windows 10 ยอมแลกหน่วยความจำเพื่อความเร็ว แทนที่จะเขียนหน้าไปยัง HDD มันบีบอัดหน้าบน RAM การอ่านข้อมูลที่บีบอัดจาก RAM ของคอมพิวเตอร์เร็วกว่าการอ่านจาก HDD แล้วโหลดเข้าสู่ RAM ทำให้ Windows 10 เร็วกว่า เวอร์ชันก่อนหน้า สิ่งนี้เป็นส่วนหนึ่งของ Linux Operating System มาก่อนที่ Windows จะนำมาใช้ ยิ่งคุณเปิดแอปพลิเคชันมากเท่าไหร่ หน่วยความจำจะถูกใช้มากเท่านั้น ซึ่งหมายความว่า CPU Usage จะเพิ่มขึ้น
Device Drivers ไม่ดีหรือล้าสมัย
เมื่อสื่อสารไปและมาจากอุปกรณ์ เช่น การ์ดเครือข่าย คีย์บอร์ด และการ์ดกราฟิก等等 ntoskrnl.exe ส่งและรับข้อมูลผ่าน Device Drivers ข้อมูลที่ได้รับจะถูกเขียนลง RAM และรอการดำเนินการ
ในกรณีของ Device Drivers ที่ผิดปกติ Drivers อาจส่งข้อมูลไปยัง ntoskrnl.exe Memory Handler อย่างต่อเนื่อง และแท้ตัวเป็น Memory Leak ไดรเวอร์ที่ไม่ดีอาจเขียนข้อมูลลงพื้นที่หน่วยความจำที่เป็นของ ntoskrnl.exe ข้อมูลนี้ถูกเขียนลงหน่วยความจำอย่างต่อเนื่อง จึงสะสมและเต็ม RAM สิ่งนี้เรียกให้ CPU Usage เพิ่มขึ้นเพื่อจัดการข้อมูลทั้งหมดนี้ สำหรับ Windows เวอร์ชันก่อนหน้าที่ ntoskrnl.exe ใช้ Disk Space สำหรับ Pages หมายความว่า Disk Space ของคุณจะเต็มค่อนข้างเร็ว
ปัญหานี้พบบ่อยมากสำหรับผู้ใช้ที่อัปเดตระบบปฏิบัติการจาก Windows 7 หรือ 8.1 เป็น Windows 10 Drivers อาจไม่เข้ากันได้กับ Windows 10 จึงก่อให้เกิด Memory Leaks ไดรเวอร์ "Killer Network Drivers" ที่ล้าสมัยได้รับรายงานว่าเป็นสาเหตุของ Memory Leaks บน Windows 10
มัลแวร์และไวรัส
ระวัง Shareware และ Freeware ที่แจกจ่ายออนไลน์ พวกเขาอาจฝังตัวเข้าสู่ไฟล์ระบบ ntoskrnl.exe หรือขโมยฟังก์ชันของไฟล์นี้นำไปสู่ Memory Leaks มันอาจแก้ไข Registry ของ Executable ด้วย หมายความว่า ntoskrnl.exe ไม่ทำงานตามที่คาดไว้ เนื่องจากมัลแวร์มีเจตนาทำลายคอมพิวเตอร์ มันจะอนุญาตให้ข้อมูลสตรีมเข้า RAM แต่ไม่อนุญาตให้อะไรออก ไวรัสอาจเขียนอยู่ในพื้นที่หน่วยความจำของ ntoskrnl.exe อย่างต่อเนื่อง สิ่งนี้เติมเต็มหน่วยความจำของคุณและนำไปสู่ CPU Usage มาก หน้าที่บันทึกลง HDD อาจเต็มพื้นที่จัดเก็บ
เมื่อ ntoskrnl.exe ตรวจพบว่ามีข้อมูลมากเกินไปในหน่วยความจำ และไม่มีอะไรสามารถเข้าไปได้อีก มันจะ "ปânico" ในการพยายามช่วยเหลือสถานการณ์ มัน Dump หน่วยความจำ พร้อมกับไฟล์ Windows ทั้งหมด ผลลัพธ์คือ Blue Screen of Death (BSOD) สิ่งเดียวกันเกิดขึ้นเมื่อตรวจพบว่ามีสิ่ง gìสักอย่างละเมิดพื้นที่หน่วยความจำของมันอย่างต่อเนื่อง
อาจมีการปิดเครื่องอย่างกะทันหันเพราะ CPU ร้อนเกินไปจากกิจกรรมมากเกินไป เพื่อป้องกันไม่ให้ CPU ไหม้ คอมพิวเตอร์ปิดลงเพื่อให้เย็นลง
ไฟล์ระบบ Ntoskrnl.exe เสียหาย
Ntoskrnl.exe เป็นไฟล์ระบบที่ได้รับการป้องกันดีที่ไม่ค่อย Crash หรือเสียหาย อย่างไรก็ตาม หากมันเสียหาย ntoskrnl.exe จะทำงานผิดปกติและไม่รู้ว่าจะเขียนอะไรและเมื่อไหร่ลง RAM หรือจะ釋放พื้นที่ RAM เมื่อไหร่ สิ่งนี้นำไปสู่การสะสมข้อมูลและหน้าหน่วยความจำ ทำให้ CPU ทำงานหนักเกินไปในการจัดการพื้นที่หน่วยความจำนี้ HDD ของคุณอาจเต็มด้วยเหตุผลเดียวกัน
วิธีแก้ไขการใช้หน่วยความจำมากเกินไปจาก ntoskrnl.exe ใน Windows 10
หากคุณเริ่มประสบ Memory Leaks ทันใดนั้น คุณอาจเป็นเหยื่อของมัลแวร์หรือไวรัส หาก Memory Leaks เริ่มหลัง Windows Update หรือการติดตั้งอุปกรณ์ใหม่ อาจเป็นเพราะ Device Drivers ที่ไม่ดีหรือล้าสมัย
นี่คือวิธีแก้บางอย่างสำหรับ ntoskrnl.exe ใช้หน่วยความจำมาก
ซ่อมแซมไฟล์ระบบที่เสียหาย
ดาวน์โหลดและรัน Restoro เพื่อสแกนและกู้คืนไฟล์ที่เสียหายและหายไปจาก ที่นี่ ทำเสร็จแล้วดำเนินการต่อกับวิธีแก้ปัญหาด้านล่าง สำคัญคือต้องแน่ใจว่าไฟล์ระบบทั้งหมดสมบูรณ์และไม่เสียหายก่อนดำเนินการต่อ
วิธีที่ 1: อัปเดตไดรเวอร์ของคุณ
ควรทราบว่าหลังอัปเดตเป็น Windows 10 ไดรเวอร์กราฟิกและเครือข่ายอาจเป็นตัวแรกที่น่าสงสัยว่าก่อให้เกิด Memory Leak นี่พบบ่อยในคอมพิวเตอร์ที่ใช้ "Killer Network Drivers" ในการอัปเดตไดรเวอร์:
- ค้าง Windows Key และ กด R พิมพ์ hdwwiz.cpl และคลิก OK
- ไปที่แท็บ Drivers และคลิกที่ "Update Drivers"
- เลือกตัวเลือก Automatic เพื่อค้นหาและติดตั้งไดรเวอร์ที่อัปเดตจากอินเทอร์เน็ต
- Restart คอมพิวเตอร์ของคุณ
วิธีที่ 2: รันแอปพลิเคชันต่อต้านมัลแวร์และสแปวร์เพื่อสแกนระบบ
เป็นแนวทางปฏิบัติที่ดีที่จะมี Malware Scanners บนคอมพิวเตอร์ของคุณ นี่คือตัวที่ทำงานดีและแนะนำ
- ดาวน์โหลด Spybot จาก ที่นี่ หรือ Malwarebytes จาก ที่นี่
- ติดตั้ง ซอฟต์แวร์และรัน Scan
- แก้ไข ปัญหาทั้งหมดที่เกิดขึ้น
- Restart คอมพิวเตอร์ของคุณ
วิธีที่ 3: ปิดใช้งาน Runtime Broker
การอภิปรายล่าสุดบน Reddit แสดงให้เห็นอย่างชัดเจนว่า Runtime Broker เป็นกระบวนการระบบหนึ่งที่มักใช้ CPU Cycles มาก เนื่องจากการเพิ่มประสิทธิภาพหน่วยความจำที่ไม่ดี สิ่งนี้ทำให้ CPU Usage สูงและ Memory Leaks
คุณสามารถปิดใช้งาน Runtime Broker ได้โดย:
- ไปที่ Start Menu และเปิดแอป Settings
- เปิด System > Notification and Actions
- ยกเลิกตัวเลือก "Show me tips about Windows" หรือ "Get tips, tricks and suggestions as you use Windows"
- Restart คอมพิวเตอร์ของคุณ
ทางเลือกอื่น:
- เปิด Notepad
- คัดลอกและวางคีย์เหล่านี้ลงใน Notepad
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\TimeBroker] "Start"=dword:00000003 [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\SysMain] "DisplayName"="Superfetch" "Start"=dword:00000003
- ไปที่ File แล้ว Save as
- บันทึกเป็น ชื่อที่คุณเลือก.reg
- รันไฟล์ เป็น Administrator และยอมรับ/ยืนยันการเปลี่ยนแปลง Registry
- Restart คอมพิวเตอร์ของคุณ
วิธีที่ 4: เปลี่ยนการตั้งค่า Registry
มีการตั้งค่าบางอย่างใน Registry ที่สามารถแก้ไขเพื่อให้ประสิทธิภาพดีขึ้น ในการปรับการกำหนดค่า Registry:
- กด ปุ่ม "Windows" + "R" พร้อมกัน
- พิมพ์ "regedit" และกด "Enter"
- ไปที่ ที่อยู่ต่อไปนี้:
HKEY_LOCAL_MACHINE>SYSTEM>CurrentControlSet>Control>Session Manager>Memory Management
- ดับเบิล คลิก ที่ "Clear Page File Shutdown" Registry ในเพนด้านขวา
- เปลี่ยน "Value Data" เป็น "1" และ คลิก "OK"
- Restart คอมพิวเตอร์ของคุณ และ ตรวจสอบ ว่าปัญหายังคงอยู่หรือไม่
ควรอัปเดตแอนติมัลแวร์และแอนติสแปวร์ให้ทันสมัย ตรวจสอบอัปเดต Device Drivers เป็นประจำ ผู้ผลิตอุปกรณ์อัปเดตคำำหนดไดรเวอร์อย่างต่อเนื่องเพื่อแก้ปัญหาและปรับปรุงฟังก์ชัน หากวิธีข้างต้นไม่ได้ผล ก็ควรลองขั้นตอนที่แนะนำที่ System and Compressed Memory