Hello.<br />
<br />
My host is a VirtualBox container on a Linux machine (2 GB RAM).<br />
<br />
When I run free on my CentOS 7 VM, the value seems correct.<br />
(but there is a little difference between free and /proc/meminfo)<br />
<br />
$ free<br />
total used free shared buffers cached<br />
Mem: 1885584 966008 919576 16772 1444 718004<br />
-/+ buffers/cache: 246560 1639024<br />
Swap: 1048572 0 1048572<br />
<br />
$ free -m<br />
total used free shared buffers cached<br />
Mem: 1841 943 897 16 1 701<br />
-/+ buffers/cache: 240 1600<br />
Swap: 1023 0 1023<br />
<br />
$ free -h<br />
total used free shared buffers cached<br />
Mem: 1.8G 943M 897M 16M 1.4M 701M<br />
-/+ buffers/cache: 240M 1.6G<br />
Swap: 1.0G 0B 1.0G<br />
<br />
$ cat /proc/meminfo | grep ^Cached:<br />
Cached: 734776 kB<br />
<br />
If I run free in a libvirt LXC container (1 GB RAM) soon after boot, free returns a strange (negative or oversized) value for 'cached'.<br />
It can also segfaults :<br />
<br />
-bash-4.2# free<br />
total used free shared buffers cached<br />
Mem: 1048576 20824 1027752 16772 0 -8476<br />
-/+ buffers/cache: 29300 1019276<br />
Swap: 1048572 0 1048572<br />
<br />
-bash-4.2# free -m<br />
total used free shared buffers cached<br />
Mem: 1024 20 1003 16 0 18014398509481976<br />
-/+ buffers/cache: 28 995<br />
Swap: 1023 0 1023<br />
<br />
-bash-4.2# free -h<br />
total used free shared buffers cached<br />
Segmentation fault<br />
<br />
-bash-4.2# cat /proc/meminfo | grep ^Cached:<br />
Cached: 8296 KB<br />
<br />
The trace I get with gdb :<br />
<br />
#0 0x0000000000401d51 in scale_size (size=18446744073709543144, <br />
<a href="mailto:flags=flags@entry">flags=flags@entry</a>=2, args=...) at free.c:145<br />
<a href="http://bugs.centos.org/view.php?id=1">0000001</a> 0x0000000000401567 in main (argc=<optimized out>, argv=<optimized out>)<br />
at free.c:306
↧