Hard faults เป็นส่วนปกติของวิธีที่คอมพิวเตอร์สมัยใหม่ประมวลผลข้อมูลหน่วยความจำในปัจจุบัน Hard fault เกิดขึ้นเมื่อบล็อกหน่วยความจำต้องถูกดึงมาจาก Page File (Virtual Memory) แทนที่จะเป็น หน่วยความจำทางกายภาพ (RAM) ด้วยเหตุนี้ Hard faults ไม่ควรถูกมองว่าเป็นเงื่อนไขข้อผิดพลาด อย่างไรก็ตาม จำนวน Hard faults ที่มากเกินไป ปกติแล้วเป็นตัวบ่งชี้ที่ดีว่เครื่องที่กล่าวถึงต้องการหน่วยความจำทางกายภาพ (RAM) เพิ่มเติม

ผู้ใช้มักตกใจเรื่อง hard faults หลังจากเข้าสู่แท็บ Memory ของ Windows Resource Monitor ขึ้นอยู่กับสเปกของ PC และงานที่ทำอยู่ กราฟนี้อาจแสดง Hard faults โหลหลายสิบ หรือหลายร้อยต่อวินาที บทความนี้เขียนขึ้นเป็นชิ้นงานข้อมูล เน้นรายละเอียดทางเทคนิคเบื้องหลัง hard fault รวมถึงกลยุทธ์บางอย่างที่เกี่ยวกับการจัดการหน่วยความจำ
คำอธิบาย Hard Faults (Page Faults)
การค้นคว้าเกี่ยวกับ hard faults อาจกลายเป็นเรื่อง棘手 เพราะใน Windows เวอร์ชันก่อนหน้า พวกเขาถูกเรียกว่า Page Faults ทรัพยากรเว็บมากมายยังคงอ้างอิงพวกเขาว่า Page Faults — ดังนั้นความสับสนจึงมาก โปรดทราบว่าทุกอย่างล้วนอ้างถึงสิ่งเดียวกัน
อย่างไรก็ตาม Hard faults (ที่รู้จักก่อนหน้านี้ว่า page faults) ไม่ควรสับสนกับ soft page faults — soft page faults เกิดขึ้นเมื่อหน่วยความจำหน้าที่อ้างถึงถูกย้ายจากที่หนึ่งในหน่วยความจำไปอีกที่หนึ่ง
Hard fault เกิดขึ้นเมื่อที่อยู่หน่วยความจำของโปรแกรมบางโปรแกรม ไม่ได้อยู่ในช่องหน่วยความจำหลักอีกต่อไป แต่ถูกสปออกไปยังไฟล์เพจหลัก (main paging file) แทน สิ่งนี้บังคับให้ระบบต้องไปค้นหาหน่วยความจำที่หายไปบนฮาร์ดดิสก์ แทนที่จะดึงมาจากหน่วยความจำทางกายภาพ (RAM) ทุกครั้งที่สิ่งนี้เกิดขึ้น ระบบของคุณจะประสบความช้าลงบางส่วนและกิจกรรมฮาร์ดดิสก์เพิ่มขึ้น แต่มากน้อยที่คุณจะรู้สึกถึงผลของ hard fault ขึ้นอยู่กับส่วนประกอบอื่นๆ ของ PC ของคุณมาก
หากจำนวน Hard Faults สูงอย่างต่อเนื่อง มักนำไปสู่ hard disk thrash คุณจะรู้ว่าคอมพิวเตอร์ของคุณอยู่ระหว่าง disk thrash เมื่อโปรแกรมหยุดตอบสนอง แตฮาร์ดดิสก์ยังคงทำงานเต็มที่เป็นเวลานาน โชคดีที่ เนื่องจาก PC ส่วนใหญ่มี RAM เพียงพอ Hard drive thrashing จึงไม่พบบ่อยเหมือนเมื่อปีก่อน อย่างไรก็ตาม ค่อนข้างปกติที่คอมพิวเตอร์ Windows 10 ที่มีทรัพยากรจำกัดจะแสดงจำนวน hard faults ต่อวินาทีสูง — โดยเฉพาะเมื่อมีโปรแกรมรันพร้อมกันมากเกินไป
วิธีแก้ไขจำนวน Hard Faults สูง
หากระบบของคุณกำลังประสบกับ hard faults หลายร้อยต่อวินาที มักเป็น 2 สิ่ง — ไม่ว่าจะเป็นการรันกระบวนการบางอย่างที่กำลัง佔用ทรัพยากรมากเกินไป หรือคุณต้องการอัปเกรด RAM อย่างด่วน

โดยทั่วไป ยิ่งคุณมี RAM มากเท่าไร คุณควรเห็น hard faults ต่อวินาทีน้อยลงเท่านั้น บางผู้ใช้รายงานว่าสามารถลดจำนวน hard faults ต่อวินาทีได้โดยการปิดใช้งานและเปิดใช้งานไฟล์ pagefile.sys ใหม่ เวอร์ชัน Windows ถูกออกแบบมาเพื่อใช้ paging file แน่นอน คุณสามารถปรับขนาดของ paging file ทดลองกับการกำหนดค่าต่างๆ หรือแม้แต่ปิดมันโดยสิ้นเชิงในความพยายามลดจำนวน hard faults ของคุณ แต่ไม่มีผู้จัดการ paging file ที่ดีกว่าระบบที่ใช้มัน นี่คือเหตุผลที่แนะนำให้ปล่อยให้ระบบจัดการและจัดสรรพื้นที่ดิสก์ได้มากที่สุดตามที่ต้องการแบบไดนามิก
หมายเหตุ: บางโปรแกรมถูกออกแบบมาเพื่อใช้ paging file และจะไม่ทำงานถูกต้องหากถูกปิดใช้งาน
การเพิ่ม RAM
หากคุณกำลังจัดการกับจำนวน hard faults ที่มากเกินไป ให้เริ่มด้วยการตรวจสอบว่าการกำหนดค่าระบบของคุณมี RAM เพียงพอที่จะรองรับ Windows เวอร์ชันที่ติดตั้งอยู่หรือไม่ จดจำไว้ว่า 64-bit ต้องการหน่วยความจำเกือบสองเท่าของ 32-bit หากคุณต่ำกว่าข้อกำหนดขั้นต่ำ ทางเลือกเดียวคือซื้อแรมเพิ่ม หรือเปลี่ยนแรมที่มีอยู่เป็นชุด dual-channel ขนาดใหญ่กว่า
หมายเหตุ: อย่าตกใจหากคุณประสบกับจำนวน hard faults ประมาณเท่าเดิมหลังเพิ่ม RAM — นี่เป็นเรื่องปกติและตัวเลขจะลดลงเรื่อยๆ คุณกำลังประสบ hard faults เพิ่มขึ้นในตอนแรก เพราะโปรแกรมและกระบวนการมากมายถูกเปิดครั้งแรก — ระบบกำลังใช้กระบวนการที่ยังไม่ได้มีโอกาสให้ข้อมูลของพวกเขาถูกจัดเก็บบนหน่วยความจำ (RAM)
การระบุตัวกินทรัพยากร (Resource Hogger)
หากคุณกำหนดได้ว่าคุณมี RAM เพียงพอสำหรับ Windows เวอร์ชันปัจจุบัน คุณอาจสมมติได้ว่าจำนวน hard faults ที่เพิ่มขึ้น เกิดจากกระบวนการบางอย่างที่กินหน่วยความจำมากเกินไป
คุณสามารถระบุได้ง่ายว่ากระบวนการไหนรับผิดชอบต่อ hard faults โดยใช้ Resource Monitor มีหลายวิธีที่จะพาคุณไปถึงที่นั่น แตวิธีที่ง่ายที่สุดคือเปิดหน้าต่าง Run (Windows key + R) พิมพ์ “resmon” และกด Enter — นี่จะพาคุณไปยังแท็บ Overview ของ Resource Monitor ทันที.

เมื่อคุณเข้าถึง Resource Monitor ให้ไปที่แท็บ Memory และคลิกคอลัมน์ Hard Faults กระบวนการแรกที่แสดงขึ้นมาก่อนที่สุดพร้อมกับ Hard Faults มากที่สุด คือตัวที่ทำให้ PC ของคุณช้าลงมากที่สุด

หมายเหตุ: ตามที่เห็นในภาพหน้าจอข้างต้น - หากมี กระบวนการ Memory Compression ไม่ควรถูกเพิกเฉย เพราะมันเป็นเทคนิคการจัดการหน่วยความจำที่ใช้โดย Windows เวอร์ชันล่าสุด
หากคุณกำหนดได้ว่ากระบวนการเฉพาะตัวใดตัวหนึ่ง แสดงจำนวน hard faults ต่อวินาที มากเกินไป (เกิน 100) อย่างต่อเนื่อง คุณสามารถจัดการกับมันได้หลายวิธี คุณสามารถคลิกขวาแล้วเลือก End process tree เพื่อบังคับปิดมันและกระบวนการที่เกี่ยวข้องทั้งหมด หรือถอนการติดตั้งแอปพลิเคชันหลักและมองหาซอฟต์แวร์คล้ายกันที่จัดการหน่วยความจำได้ดีกว่า