Score:0

/proc/meminfo แสดง MemFree มากกว่า MEMAvailable - มันสมเหตุสมผลไหม

ธง in

จากที่ผมพอจะเข้าใจจาก การเปลี่ยนแปลงนี้ ใน Linux รายงานการใช้หน่วยความจำ /proc/meminfo รายงาน เมมฟรี เป็น RAM ที่ไม่ได้ใช้ในปัจจุบันและ ใช้ได้ เนื่องจาก RAM ปัจจุบันพร้อมใช้งานสำหรับกระบวนการใหม่โดยไม่ต้องสลับ

จากนี้ไม่ควร เมมฟรี บรรจุอยู่ใน ใช้ได้จึงจะน้อยกว่าหรือเท่ากับมันเสมอ? ฉันเดาว่า RAM ที่ไม่ได้ใช้นั้นมีให้สำหรับกระบวนการใหม่โดยไม่ต้องสลับ หรือฉันเข้าใจผิดในส่วน "หน่วยความจำฟรีไม่สามารถถ่ายต่ำกว่าลายน้ำต่ำ" (ส่วนที่ 4 จากแพตช์)

ค่าเหล่านี้ตรงกันตามที่คาดไว้ ฟรี และ สูงสุด เอาต์พุต

ฉันเห็นสิ่งนี้ในเครื่องเสมือน Exadata ที่มีข้อกำหนดเหล่านี้:

แมว / etc / oracle-release 
Oracle Linux Server รีลีส 7.8

ชื่อ -r
4.14.35-1902.306.2.1.el7uek.x86_64

รอบต่อนาที -q sysstat
sysstat-10.1.5-19.el7.x86_64

เต็ม /proc/meminfo ในช่วงเวลาใดก็ได้หากช่วยได้:

MemTotal: 19995464 kB
MemFree: 2963684 กิโลไบต์
หน่วยความจำที่มีอยู่: 1063344 kB
บัฟเฟอร์: 406124 กิโลไบต์
แคช: 2609256 kB
สลับแคช: 9648 กิโลไบต์
ใช้งานอยู่: 4632640 กิโลไบต์
ไม่ใช้งาน: 2348256 kB
ใช้งานอยู่(ไม่ใช้งาน): 3882372 kB
ไม่ใช้งาน (ไม่ใช้งาน): 700524 kB
ใช้งานอยู่(ไฟล์): 750268 kB
ไม่ใช้งาน (ไฟล์): 1647732 kB
ไม่สามารถหลีกเลี่ยงได้: 634040 kB
ล็อค: 634044 kB
SwapTotal: 16777212 กิโลไบต์
สวอปฟรี: 16579068 กิโลไบต์
สกปรก: 1684 กิโลไบต์
การเขียนกลับ: 0 kB
AnonPages: 4592704 kB
แมปแล้ว: 384108 kB
ชม: 484212 kB
พื้น: 511064 กิโลไบต์
SReclaimable: 249660 kB
SUnreclaim: 261404 kB
KernelStack: 23184 กิโลไบต์
PageTables: 96648 กิโลไบต์
NFS_Unstable: 0 กิโลไบต์
การตีกลับ: 0 กิโลไบต์
WritebackTmp: 0 กิโลไบต์
CommitLimit: 24602016 กิโลไบต์
Commit_AS: 5737344 กิโลไบต์
VmallocTotal: 34359738367 กิโลไบต์
VmallocUsed: 0 กิโลไบต์
VmallocChunk: 0 กิโลไบต์
ฮาร์ดแวร์เสียหาย: 0 kB
AnonHugePages: 0 kB
ShmemHugePages: 0 กิโลไบต์
ShmemPmdMapped: 0 กิโลไบต์
CmaTotal: 0 กิโลไบต์
CmaFree: 0 กิโลไบต์
HugePages_Total: 2122
HugePages_ฟรี: 590
HugePages_Rsvd: 1
HugePages_Surp: 0
ขนาดหน้าใหญ่: 2048 kB
DirectMap4k: 833536 กิโลไบต์
DirectMap2M: 15943680 กิโลไบต์
DirectMap1G: 5242880 กิโลไบต์

ขอบคุณ,
เอเมอร์สัน

jp flag
สูตรสำหรับ MEMAvailable อยู่ในรหัสที่คุณเชื่อมโยง
in flag
@AlexD ใช่ ปัญหาคือความเข้าใจของฉัน - จากสูตรนั้น เป็นไปได้ไหมที่จะมี RAM ว่างมากกว่า RAM ว่าง
jp flag
`ว่าง = i.freeram - wmark_low` หมายความว่าค่าเริ่มต้นที่กำหนดให้กับ 'MemAvailable' คือ '(MemFree - ลายน้ำต่ำ)' ซึ่งน้อยกว่า 'MemFree'
in flag
@AlexD มีเหตุผล ลายน้ำต่ำอาจมากกว่าส่วนประกอบอื่นๆ ของ MemAvailable ฉันคิดว่ามันเป็นไปไม่ได้จริงๆ แต่อาจจะเป็นเคสขอบปกติ ฉันเดาว่ามัน คุณจะโพสต์ใหม่เป็นคำตอบหรือไม่?
Score:1
ธง jp

รหัสเริ่มต้นเป็น มี = i.freeram - wmark_low.

หมายความว่าค่าเริ่มต้นที่กำหนดให้กับ ใช้ได้ เป็น (MemFree - ลายน้ำต่ำ) ซึ่งน้อยกว่า เมมฟรี.

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา