ระบบจะทำอะไรกับส่วนที่เหลืออีก 20%
เคอร์เนลจะใช้หน่วยความจำกายภาพที่เหลืออยู่เพื่อวัตถุประสงค์ของตัวเอง (โครงสร้างภายในตารางบัฟเฟอร์แคชอะไรก็ตาม) การตั้งค่าหน่วยความจำ overcommitment จัดการกับการจองหน่วยความจำเสมือนจริงของผู้ใช้แอปพลิเคชันเคอร์เนลไม่ได้ใช้หน่วยความจำเสมือน แต่เป็นหน่วยความจำจริง
ทำไมพารามิเตอร์นี้จำเป็นต้องมีตั้งแต่แรก?
overcommit_ratio
พารามิเตอร์เป็นทางเลือกการดำเนินการออกแบบมาเพื่อป้องกันการใช้งานสำรองหน่วยความจำเสมือนมากกว่าสิ่งที่สมควรจะสามารถใช้ได้สำหรับพวกเขาในอนาคตคือเมื่อพวกเขาจริงเข้าถึงหน่วยความจำ (หรืออย่างน้อยลอง)
การตั้งค่าovercommit_ratio
เป็น 50% ถือเป็นค่าเริ่มต้นที่เหมาะสมโดยนักพัฒนาเคอร์เนล Linux จะถือว่าเคอร์เนลไม่จำเป็นต้องใช้ RAM มากกว่า 50% จริง ๆ ระยะทางของคุณอาจแตกต่างกันไปสาเหตุที่ทำให้สามารถปรับได้
ทำไมฉันไม่ควรตั้งไว้ที่ 100% เสมอ?
การตั้งค่าเป็น 100% (หรือค่า "สูงเกินไป") ไม่ได้ปิดการใช้งานการทับได้อย่างน่าเชื่อถือเนื่องจากคุณไม่สามารถถือว่าเคอร์เนลจะใช้ RAM 0% (หรือน้อยเกินไป)
มันจะไม่ป้องกันแอปพลิเคชันที่จะทำงานล้มเหลวเนื่องจากเคอร์เนลอาจครอบครองหน่วยความจำกายภาพทั้งหมดที่ต้องการ