Будь ласка, врахуйте зразок виводу, який я отримав від 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/c9901bbd7d9bbd7d9bbd7bddddddddddd
Що стосується нового 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_*
імен змінних є внутрішніми іменами , використовуваними в вихідному коді.