我试图将free的输出与sar -r的输出进行比较:
# sar -r
12:00:01 AM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit
12:10:01 AM 629756 65293976 99.04 586536 60321636 5094176 7.49
# free
total used free shared buffers cached
Mem: 65923732 9120348 56803384 0 403628 5789524
-/+ buffers/cache: 2927196 62996536
Swap: 2097144 0 2097144在以free开头的Mem:行中,很明显,我们有在sar中所称的内容: kbmemtotal、kbmemused、kbmemfree、??、kbbuffers、kbcached。
在-/+开头的线路上:?
我标记的值的名称是什么?这是kbcommit值吗?我读过Linux吃了我的ram,它确实解释了数字的含义,但没有解释它们的名字。而且,自由手册也没有给出名称。
发布于 2014-07-27 17:21:59
名称实际上是匹配的,但是sar和free没有显示完全相同的字段。
您的第一个???不是kbcommit,它是共享内存,与/proc/meminfo中的Shmem相同。
第二行显示缓冲区和缓存使用的内存是否被视为空闲内存而不是使用内存。
$ free
total used free shared buffers cached
Mem: MemTotal kbmemused kbmemfree Shmem kbbuffers kbcached
-/+ buffers/cache: USED2 FREE2
Swap: 0 0 0发布于 2014-07-27 13:19:15
实际上,正如您的输出可能表明的那样,sar's kbmemused可能与来自free的第二个"Mem:“字段不一样。来自man sar:
以千字节为单位的内存使用量。这没有考虑到内核本身使用的内存。
假定这部分未予考虑的是:
内核用作缓冲区的内存数量(以千字节为单位)。以千字节为单位缓存内核用于缓存数据的内存数量。
希望这不仅仅是误导文档的情况;我不是sar用户。在任何情况下,free中的顶层都包含缓冲区和缓存。第二行(+/- buffers/cache)没有。注意: 403628 (buffers) + 5789524 (cached) = 6193152,9120348 (Mem: used) - 6193152 = 2927196 (+/- buffers/cache: used)。
他们的名字
你想叫什么就叫什么。来自sar的名称是任意的。如果您将free输出的值称为“内存使用的减号缓存”,很明显,您指的是第二行中的第一个数字,等等。
https://unix.stackexchange.com/questions/146827
复制相似问题