【问题标题】:Understanding buffers/cache in linux `free -m` [closed]了解linux`free -m`中的缓冲区/缓存[关闭]
【发布时间】:2014-08-29 21:30:24
【问题描述】:

只是在寻找有关 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

我了解内核可以并且将使用可用内存进行磁盘缓存以加速系统。

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

我想我想了解“-/+ 缓冲区/缓存”旁边的两个输出是什么意思。据我所知,系统确实内存不足(只有 1213MB 可供应用程序使用),而操作系统实际上需要 13GB 用于缓存?

【问题讨论】:

    标签: linux caching memory free-command


    【解决方案1】:

    这个has been answered 在服务器故障中。以下是相关摘录:

    total = used + free

    • shared / buffers / cached:显示特定用途的内存使用情况,这些值包含在 used 的值中。

    第二行给出调整后的第一行值。它给出了used 的原始值minusbuffers+cachedfree 的原始值plusbuffers+cached,因此它的标题。这些新值通常比第一行的值更有意义。

    [摘录结束]

    关注你的情况,

    • 14813(已用内存)- 262(缓冲)- 883(缓存)= 13668(应用程序使用)。

    如果应用程序需要更多内存,可以从空闲内存或缓存/缓冲中获取,因此:

    • 262(缓冲)+ 883(缓存)+ 68(根本不使用)= 1213(应用程序可用)。

    系统并不真正需要 262+883=1145(不是 13GB)用于缓存和缓冲区,但既然它就在那里,它就需要它(但如果应用程序需要更多,它会归还)。看看Linux ate my RAM! 页面。

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

    例如,下面是我的树莓派中运行的 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
    

    【讨论】:

      猜你喜欢
      • 2011-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-25
      相关资源
      最近更新 更多