如何分析 buff/cache 内存

如何分析 buff/cache 内存

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

系统重启前

              total        used        free      shared  buff/cache   available
Mem:          31549         809         369        1567       30371       28729
Swap:             0           0           0

系统重启后

              total        used        free      shared  buff/cache   available
Mem:          31549         405       30809          37         334       30767
Swap:             0           0           0

重启后,缓存/高速缓存内存开始逐渐增加。有没有办法分析哪个处理器占用了缓存/高速缓存空间。还有,是否可以看到什么占用了缓存/高速缓存?

答案1

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

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

但有时,它可能表示诸如缺少日志文件轮换之类的问题 - 这里有一篇关于这个特定问题以及如何使用 Async Profiler 进行分析的精彩文章:https://www.youtube.com/watch?v=bTDmpwhwy3E&list=PLNCLTEx3B8h4Yo_WvKWdLvI9mj1XpTKBr&t=4261s

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

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

$ vmtouch .
...
           Files: 81989
     Directories: 8351
  Resident Pages: 297/1672196  1M/6G  0.0178%
         Elapsed: 0.8893 seconds
 

相关内容