理解linux`free-m中的缓冲区/缓存`

理解linux`free-m中的缓冲区/缓存`,linux,caching,memory,free-command,Linux,Caching,Memory,Free Command,只是想了解一些关于Linux上的free-m输出的快速帮助。下面是我的一台服务器上的一个示例: $free -m total used free shared buffers cached Mem: 14881 14813 68 0 262 883 -/+ buffers/cache: 13667 1

只是想了解一些关于Linux上的
free-m
输出的快速帮助。下面是我的一台服务器上的一个示例:

  $free -m
               total       used       free     shared    buffers     cached
  Mem:         14881      14813         68          0        262        883
  -/+ buffers/cache:      13667       1213
  Swap:         4095        240       3855
我知道内核可以并且将使用可用内存进行磁盘缓存,以提高系统的速度

通常,我看“free”列中的第二个值,在上面的例子中是1213。通常比这个高很多

我想我想了解'-/+buffers/cache'旁边的两个输出是什么意思。从我所看到的情况来看,系统确实内存不足(只有1213MB可供应用程序使用),操作系统实际上需要13GB的缓存空间?

这是服务器故障。以下是相关摘录:

总计
=
使用
+
免费

  • 共享的
    /
    缓冲区
    /
    缓存的
    :这显示特定用途的内存使用情况,这些值包含在使用的的值中
第二行给出调整后的第一行值。它给出了
已用
的原始值减去总和
缓冲区+缓存
自由
的原始值加上总和
缓冲区+缓存
,因此它的标题。这些新值通常比第一行的值更有意义

[节选结束]

关注你的处境

  • 14813(已用内存)-262(已缓冲)-883(已缓存)=13668(由应用程序使用)
如果应用程序需要更多内存,可以从可用内存或缓存/缓冲内存中获取,因此:

  • 262(缓冲)+883(缓存)+68(根本不使用)=1213(适用于应用程序)
系统实际上并不需要262+883=1145(不是13GB)的缓存和缓冲区,但因为它存在,所以它会接受它(但如果应用程序需要更多,它会返回)。请看一下这一页

您还可以使用
top
(我个人更喜欢
htop
)查看内存状态以及哪些应用程序占用的内存最多

例如,下面是在my RaspberryPi中运行的htop的屏幕截图和
free-h
执行:

raspberry ~ # free -h
             total       used       free     shared    buffers     cached
Mem:          183M       178M       5,3M         0B        63M        42M
-/+ buffers/cache:        72M       111M
Swap:           0B         0B         0B