当我使用时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吗?
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)