相关疑难解决方法(0)

顶部的“buff/cache”和“avail mem”字段是什么意思?

在 top 的输出中,有两个字段,在内存和交换使用行中标记为“buff/cache”和“avail Mem”:

在此处输入图片说明

这两个字段是什么意思?

我试过在谷歌上搜索它们,但结果只会在顶部显示通用文章,并且没有解释这些字段的含义。

linux memory top

63
推荐指数
3
解决办法
9万
查看次数

RAM 的 30% 是“缓冲区”。它是什么?

我如何描述或解释输出中的“缓冲区” free

$ free -h
              total        used        free      shared  buff/cache   available
Mem:           501M        146M         19M        9.7M        335M        331M
Swap:          1.0G         85M        938M

$ free -w -h
              total        used        free      shared     buffers       cache   available
Mem:           501M        146M         19M        9.7M        155M        180M        331M
Swap:          1.0G         85M        938M
Run Code Online (Sandbox Code Playgroud)

我对这个系统没有任何(已知的)问题。我只是惊讶和好奇地看到“缓冲区”几乎和“缓存”一样高(155M vs 180M)。我认为“缓存”代表文件内容的页面缓存,并且往往是“缓存/缓冲区”中最重要的部分。我不确定什么是“缓冲区”。

例如,我将其与具有更多 RAM 的笔记本电脑进行了比较。在我的笔记本电脑上,“缓冲区”数字比“缓存”小一个数量级(200M 与 4G)。如果我了解什么是“缓冲区”,那么我就可以开始研究为什么缓冲区在较小的系统上增长到如此大的比例。

来自man proc(我忽略了“大”这个滑稽过时的定义):

缓冲区 %lu

原始磁盘块的相对临时存储,不应变得非常大(20MB 左右)。

缓存 %lu

从磁盘读取的文件的内存缓存(页面缓存)。不包括 SwapCached。


$ free -V
free from procps-ng 3.3.12

$ uname -r  # the Linux kernel …
Run Code Online (Sandbox Code Playgroud)

linux memory cache

15
推荐指数
1
解决办法
9585
查看次数

如何跨发行版可移植地获取可用内存量?

报告内存的标准文件/工具在不同的 Linux 发行版上似乎具有不同的格式。例如,在 Arch 和 Ubuntu 上。

  • $ free
                  total        used        free      shared  buff/cache   available
    Mem:        8169312     3870392     2648348       97884     1650572     4110336
    Swap:      16777212      389588    16387624
    
    
    $ head /proc/meminfo 
    MemTotal:        8169312 kB
    MemFree:         2625668 kB
    MemAvailable:    4088520 kB
    Buffers:          239688 kB
    Cached:          1224520 kB
    SwapCached:        17452 kB
    Active:          4074548 kB
    Inactive:        1035716 kB
    Active(anon):    3247948 kB
    Inactive(anon):   497684 kB
    
    Run Code Online (Sandbox Code Playgroud)
  • Ubuntu

    $ free
                 total       used       free     shared    buffers     cached
    Mem:      80642828   69076080   11566748    3063796     150688   58358264
    -/+ buffers/cache:   10567128   70075700 …
    Run Code Online (Sandbox Code Playgroud)

linux memory meminfo

12
推荐指数
2
解决办法
1万
查看次数

标签 统计

linux ×3

memory ×3

cache ×1

meminfo ×1

top ×1