私の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
Memのused
(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 / cache値は次のように計算されます:
buffers = kb_main_used - buffers_plus_cached = 6187480 - 2478284 = 3709196
/
cache = kb_main_free + buffers_plus_cached = 1887160 + 2478284 = 4365444
新しいバフ/キャッシュ値は、次のように計算されます。
buff/cache = kb_main_buffers+kb_main_cached = 365128 + 2113156 = 2478284
これは、buffers_plus_cached
以前のバージョンで使用されていたと同じです。違いは、以前は内部で使用されていたが、現在は直接表示され、さらに計算-/+ buffers/cache
された行が削除されたことです
詳細については、これらの変更が導入されたこれらのコミットを確認して
ください
。
新しいavailable
フィールドの時点で、2.6.27より古いLinuxカーネルの場合、その値は値と同じ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
として利用できるようになりました。
- -/ + buffers / cache
used
=現在のMem used
列(その計算の詳細は上記)
- -/ + buffers / cache
free
は、現在の新しい列のより正確な値として利用可能ですavailable
NB:kb_*
変数名は、ソースコードで使用される内部名です。