“自由”中的职位叫什么?

“自由”中的职位叫什么?

我试图将 的输出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总kbmem,克伯梅穆塞德,KBmemfree,???,kb缓冲区,KB缓存
在开始的行上-/+???,???

我标记的值的名称是什么???这就是kbcommit价值吗?我读过了Linux 吃了我的内存这确实解释了数字的含义,但没有解释它们的名称。另外,免费联机帮助页也没有给出名字。

答案1

名称实际上匹配,但sarfree显示完全相同的字段。

你的第一个???不是,它是共享内存,与fromkbcommit相同。Shmem/proc/meminfo

第二行显示如果缓冲区和缓存使用的内存被视为空闲而不是已使用的内存使用情况。

$ free
             total       used       free     shared    buffers     cached
Mem:      MemTotal  kbmemused  kbmemfree      Shmem  kbbuffers   kbcached
-/+ buffers/cache:      USED2      FREE2
Swap:            0          0          0
  • MemTotal = 来自 /proc/meminfo 的 MemTotal
  • Shmem = 来自 /proc/meminfo 的 Shmem
  • USED​​2 = kbmemused - kbbuffers - kbcached
  • FREE2 = kbmemfree + kbbuffers + kbcached

答案2

实际上,正如您的输出可能表明的那样,sarskbmemused可能是不是与 中的第二个“Mem:”字段相同free。从man sar

克伯梅穆塞德 已用内存量(以千字节为单位)。这没有考虑内核本身使用的内存。

假设未考虑的部分是:

kb缓冲区 用作缓冲区的内存量由内核以千字节为单位。

KB缓存 用于缓存数据的内存量由内核以千字节为单位。

希望这不仅仅是一个误导性文档的案例;我不是sar用户。无论如何,最上面一行free确实包括缓冲区和高速缓存。第二行(+/- buffers/cache)没有。请注意 403628 ( buffers) + 5789524 ( cached) = 6193152 和 9120348 ( Mem: used) - 6193152 = 2927196 ( +/- buffers/cache: used)。

他们的名字

你可以随意称呼他们。来自的名称sar是任意的。如果您将输出的值称为free“使用的内存减去缓存”,那么显然您指的是第二行的第一个数字,依此类推。

相关内容