为什么free / command中显示的buff / cache比vmstat和meminfo中列出的更多

时间:2017-02-13 06:21:06

标签: linux memory-management linux-kernel

$ free
              total        used        free      shared  buff/cache   available
Mem:       16349804     4727520     9075260       13992     2547024    11238920
Swap:      19528700       12284    19516416

$ cat /proc/vmstat
nr_free_pages 2268791
nr_file_pages 502861

$ cat /proc/meminfo
MemTotal:       16349804 kB
MemFree:         9075360 kB
MemAvailable:   11239020 kB
Buffers:         1063716 kB
Cached:           939312 kB
SwapCached:         8416 kB

为什么buff / cache(2547024)在free命令中显示的比vmstat(502861 * 4 = 2011444)或meminfo(1063716 + 939312 + 8416 = 2011444)中列出的更多?

$ uname -a
Linux OP3020 4.4.0-62-generic #83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
$ free --version
free from procps-ng 3.3.10

1 个答案:

答案 0 :(得分:1)

正如我从消息来源看到的那样,免费的实用程序帐户会在缓冲区/缓存中记录内存。

kb_main_cached = kb_page_cache + kb_slab;

换句话说,它会记录您可能会丢弃的所有内容

echo "3" > /proc/sys/vm/drop_caches

即。包括dentry和inode缓存

无论如何,我无法理解为什么kb_slab而不是kb_slab_reclaimable,但对我而言,这些值非常相等。 你可以在Ubuntu上自己检查一下。 sudo apt-get source procps