Vui lòng xem xét đầu ra mẫu tôi nhận được từ free
lệnh trong Ubuntu 12.04
:
total used free shared buffers cached
Mem: 8074640 6187480 1887160 377056 365128 2113156
-/+ buffers/cache: 3709196 4365444
Swap: 15998972 82120 15916852
Các Memused
(kb_main_used) giá trị trường hiện được tính như thế này:
used = total - free - cached - buffers
Trước đây, nó từng là:
used = total - free
Thay đổi này đã được giới thiệu trong cam kết sau https://gitlab.com/procps-ng/procps/commit/6cb75efef85f735b72e6c96f197f58f511f8ed9
Một giá trị trung gian:
buffers_plus_cached = buffers (kb_main_buffers) + cached (kb_main_cached) = 365128 + 2113156 = 2478284
+/- giá trị bộ đệm / bộ đệm được tính như thế này:
buffers = kb_main_used - buffers_plus_cached = 6187480 - 2478284 = 3709196
/
cache = kb_main_free + buffers_plus_cached = 1887160 + 2478284 = 4365444
Giá trị buff / cache mới được tính như thế này:
buff/cache = kb_main_buffers+kb_main_cached = 365128 + 2113156 = 2478284
Điều này giống như buffers_plus_cached
, được sử dụng trong các phiên bản trước, điểm khác biệt là trước đây nó được sử dụng nội bộ, và bây giờ nó được hiển thị trực tiếp và dòng tính toán tiếp theo -/+ buffers/cache
đã bị xóa
Để biết thêm thông tin, vui lòng kiểm tra các cam kết này, trong đó các thay đổi này đã được giới thiệu:
https://gitlab.com/procps-ng/procps/commit/f47001c9e91a1e9b12db4497051a212cf49a87b1
https://gitlab.com/procpscbc
Đối với trường mới available
, đối với các nhân Linux cũ hơn 2.6,27, giá trị của nó giống với free
giá trị, nhưng đối với các phiên bản sau của Kernel, thì hơi khác một chút:
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)
Lịch sự:
http://manpages.ubfox.com/manpages/xenial/en/man1/free.1.html
Vì vậy, câu trả lời cụ thể cho câu hỏi của bạn sẽ là:
- Phiên bản mới
free
bao gồm bộ đệm / bộ đệm trong tính toán các Mem used/free
giá trị.
- Các
+/- buffers/cache
giá trị được sử dụng để có mặt ở đó trong các phiên bản trước của free
bây giờ đã có như:
- - / + bộ đệm / bộ đệm
used
= Mem used
cột hiện tại (Tính toán của nó được nêu chi tiết ở trên)
- - / + bộ đệm / bộ đệm
free
có sẵn dưới dạng giá trị chính xác hơn trong cột mới hiện tạiavailable
NB: Tên kb_*
biến là tên nội bộ được sử dụng trong mã nguồn.