สามารถรับคำตอบสำหรับคำถามของฉัน
ในกรณีที่มีค่าใกล้เป็น 0 ระบบจะล่มหรือไม่
จากการทดสอบในเซิร์ฟเวอร์เครื่องหนึ่งของฉัน ซึ่งฉันโหลดหน่วยความจำจนเกือบเต็มตามด้านล่าง
sys> ฟรี -h
รวมใช้บัฟ/แคชที่ใช้ร่วมกันฟรี
เมม: 11G 11G 135M 25M 187M 45M
สลับ: 0B 0B 0B
สามารถดูแอปพลิเคชันของฉันคนเดียว (ซึ่งใช้หน่วยความจำมากกว่า) ถูกฆ่าโดย Out of memory killer ซึ่งสามารถอ้างอิงได้ในบันทึกเคอร์เนล
dmesg -e
[355623.918401] [21805] 553000 21805 69 21 2 0 0 ฿
[355623.921381] หน่วยความจำไม่พอ: ฆ่ากระบวนการ 11465 (java) ได้คะแนน 205 หรือสังเวยลูก
[355623.925379] กระบวนการที่ถูกฆ่า 11465 (java), UID 553000, total-vm:6372028kB, anon-rss:2485580kB, file-rss:0kB, shmem-rss:0kB
https://www.kernel.org/doc/gorman/html/understand/understand016.html
Out Of Memory Killer หรือ OOM Killer เป็นกระบวนการที่เคอร์เนลลินุกซ์ใช้เมื่อระบบมีหน่วยความจำเหลือน้อยมาก สถานการณ์นี้เกิดขึ้นเนื่องจากเคอร์เนล linux มีหน่วยความจำที่จัดสรรให้กับกระบวนการมากเกินไป ... ซึ่งหมายความว่ากระบวนการที่กำลังทำงานอยู่ต้องการหน่วยความจำมากกว่าที่มีอยู่จริง