如何分析buff/cache内存

kum*_*mar 1 linux memory

当我使用时free -m我得到以下信息

系统重启前

              total        used        free      shared  buff/cache   available
Mem:          31549         809         369        1567       30371       28729
Swap:             0           0           0
Run Code Online (Sandbox Code Playgroud)

系统重启后

              total        used        free      shared  buff/cache   available
Mem:          31549         405       30809          37         334       30767
Swap:             0           0           0
Run Code Online (Sandbox Code Playgroud)

重新启动后,buff/缓存内存开始逐渐增加,直到。有没有办法分析哪个处理器占用了 buff/cache 中的空间。还可以看到什么占用了buff/cache吗?

Jur*_*nka 5

buff/cache指的是操作系统维护的一部分内存,用于“页面缓存”——用于缓存文件的内容以加速磁盘IO。如果需要,可以将这些内存释放用于其他目的 - 这就是为什么您还会在列中看到大量内存available

通常您不应该担心它 - 内核有责任来管理它。

但有时,它可能会发出诸如丢失日志文件轮换之类的问题 - 这里有一个关于这个特定问题以及如何使用异步分析器分析它的精彩讨论:https://www.youtube.com/watch?v=bTDmpwhwy3E&list=PLNCLTEx3B8h4Yo_WvKWdLvI9mj1XpTKBr&t = 4261s

通过分析此性能事件: 在此输入图像描述

还有像fincore和 之类的程序vmtouch可以在特定文件甚至目录(vmtouch)上使用,以显示它们在页面缓存中占用了多少空间

$ vmtouch .
...
           Files: 81989
     Directories: 8351
  Resident Pages: 297/1672196  1M/6G  0.0178%
         Elapsed: 0.8893 seconds
 
Run Code Online (Sandbox Code Playgroud)