โปรดพิจารณาผลลัพธ์ตัวอย่างที่ฉันได้รับจากfreeคำสั่งในUbuntu 12.04:
total used free shared buffers cached
Mem: 8074640 6187480 1887160 377056 365128 2113156
-/+ buffers/cache: 3709196 4365444
Swap: 15998972 82120 15916852
Memused (kb_main_used) ค่าของฟิลด์จะถูกคำนวณในขณะนี้เช่นนี้
used = total - free - cached - buffers
ก่อนหน้านี้เคยเป็น:
used = total - free
การเปลี่ยนแปลงนี้มีการนำมาใช้ในการยอมรับhttps://gitlab.com/procps-ng/procps/commit/6cb75efef85f735b72e6c96f197f358f511f8ed9ต่อไปนี้
ค่ากลาง:
buffers_plus_cached = buffers (kb_main_buffers) + cached (kb_main_cached) = 365128 + 2113156 = 2478284
+/- ค่าบัฟเฟอร์ / แคชคำนวณเช่นนี้:
buffers = kb_main_used - buffers_plus_cached = 6187480 - 2478284 = 3709196
/
cache = kb_main_free + buffers_plus_cached = 1887160 + 2478284 = 4365444
ค่า buff / cache ใหม่จะคำนวณดังนี้:
buff/cache = kb_main_buffers+kb_main_cached = 365128 + 2113156 = 2478284
นี่เป็นเช่นเดียวกับที่buffers_plus_cachedใช้ในรุ่นก่อนหน้านี้ความแตกต่างคือก่อนหน้านี้มันถูกใช้ภายในและตอนนี้มันแสดงโดยตรงและบรรทัดที่คำนวณเพิ่มเติม-/+ buffers/cacheได้ถูกลบออก
สำหรับข้อมูลเพิ่มเติมโปรดตรวจสอบกระทำเหล่านี้ที่มีการเปลี่ยนแปลงเหล่านี้ได้ถูกนำมา:
https://gitlab.com/procps-ng/procps/commit/f47001c9e91a1e9b12db4497051a212cf49a87b1
https://gitlab.com/procps-ng/procps/commit/c9908b59712d1afd6b9bf7971ba1d8900ae5adb8
ในฐานะของavailableเขตข้อมูลใหม่สำหรับเคอร์เนล Linux ที่เก่ากว่า 2.6.27 ค่าของมันจะเหมือนกับfreeค่า แต่สำหรับเคอร์เนลรุ่นใหม่กว่าจะแตกต่างกันเล็กน้อย:
Estimation of how much memory is available for starting new
applications, without swapping. Unlike the data provided by the
cache or free fields, this field takes into account page cache
and also that not all reclaimable memory slabs will be reclaimed
due to items being in use (MemAvailable in /proc/meminfo,
available on kernels 3.14, emulated on kernels 2.6.27+,
otherwise the same as free)
มารยาท:
http://manpages.ubuntu.com/manpages/xenial/en/man1/free.1.html
ดังนั้นคำตอบเฉพาะสำหรับคำถามของคุณคือ:
- เวอร์ชั่นใหม่ของ
freeรวมบัฟเฟอร์ / แคชในการคำนวณMem used/freeค่า
- ตอนนี้
+/- buffers/cacheค่าที่เคยมีในรุ่นก่อนหน้านี้freeจะพร้อมใช้งานเป็น:
- - / + บัฟเฟอร์ / แคช
used = Mem usedคอลัมน์ปัจจุบัน(การคำนวณมีรายละเอียดด้านบน)
- - / + บัฟเฟอร์ / แคช
freeมีอยู่ในค่าที่ถูกต้องมากขึ้นในคอลัมน์ใหม่ปัจจุบันavailable
หมายเหตุ:kb_*ชื่อตัวแปรที่มีชื่อภายในใช้ในรหัสที่มา