ป้องกันระบบหยุดทำงาน / ไม่ตอบสนองเนื่องจากการสลับการใช้หน่วยความจำหมด
หากกระบวนการต้องการหน่วยความจำจำนวนมากระบบจะย้ายกระบวนการอื่นทั้งหมดไปยังไฟล์ swap รวมถึงกระบวนการที่จำเป็นเช่นเซิร์ฟเวอร์ X11 หรือเทอร์มินัล ดังนั้นหากกระบวนการยังคงจัดสรรโดยไม่ จำกัด ทุกอย่างจะไม่ตอบสนองจนกว่ากระบวนการนั้นจะถูก OOM-killer ทำการฆ่า แล็ปท็อปของฉันดูเหมือนจะเหมาะสมเป็นพิเศษและตอบสนองได้แย่มาก ฉันเพิ่งใช้เวลาทั้งหมดประมาณหนึ่งชั่วโมงเพื่อรอการยกเลิกกระบวนการซึ่งแม้แต่เคอร์เซอร์เมาส์ก็ไม่สามารถขยับได้ วิธีนี้สามารถหลีกเลี่ยงได้? 1) ปิดการแลกเปลี่ยน => ฉันมักจะเริ่มกระบวนการจำนวนมากที่ไม่ได้ใช้งาน คนที่ไม่ได้ใช้งานควรถูกย้ายไปที่การแลกเปลี่ยน 2) รับ SSD => แพงเกินไป 3) ตั้งค่า ulimit หน่วยความจำสูงสุด => แต่มันล้มเหลวในกรณีที่โปรแกรมต้องการหน่วยความจำขนาดใหญ่ที่เป็นกันเอง ปัญหาไม่ใช่ว่ามันใช้มากเกินไป แต่มันจะหยุดกระบวนการอื่น ๆ 4) รักษาโปรแกรมที่สำคัญ (X11, bash, kill, top, ... ) ไว้ในหน่วยความจำและไม่เคยเปลี่ยนโปรแกรมเหล่านี้ => ทำได้หรือไม่? อย่างไร บางทีแค่สลับโปรแกรมขนาดใหญ่? 5)?