เมื่อฉันใช้การตั้งค่าเริ่มต้น:
vm.overcommit_memory = 0
vm.overcommit_ratio = 50
ฉันสามารถอ่านค่าเหล่านี้ได้จาก/proc/meminfo
ไฟล์:
CommitLimit: 2609604 kB
Committed_AS: 1579976 kB
แต่เมื่อฉันเปลี่ยนvm.overcommit_memory
จาก0
เป็น2
ฉันไม่สามารถเริ่มแอปพลิเคชันชุดเดียวกันที่ฉันสามารถเริ่มก่อนการเปลี่ยนแปลงโดยเฉพาะ amarok ฉันต้องเปลี่ยนvm.overcommit_ratio
เป็น300
ดังนั้นขีด จำกัด สามารถเพิ่มขึ้นได้ ตอนนี้เมื่อฉันเริ่ม amarok /proc/meminfo
แสดงต่อไปนี้
CommitLimit: 5171884 kB
Committed_AS: 3929668 kB
เครื่องนี้มี RAM เพียง 1GiB แต่ amarok ทำงานได้โดยไม่มีปัญหาเมื่อvm.overcommit_memory
ตั้งค่าเป็น 0 แต่ในกรณีที่ตั้งค่าเป็น2
amarok จำเป็นต้องจัดสรรหน่วยความจำมากกว่า 2GiB มันเป็นพฤติกรรมปกติหรือไม่? ถ้ามีใครสามารถอธิบายได้ว่าทำไมเช่น firefox (ซึ่งใช้หน่วยความจำมากกว่า amarok 4-6x) ทำงานในลักษณะเดียวกันก่อนและหลังการเปลี่ยนแปลง?
Committed_AS
ทั้งสองกรณีไม่ควรเท่ากันหรือ