$ 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
答案 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