Linux:什么应用程序正在使用我的ram缓存

我想知道我是否可以看到哪个应用程序正在使用我的ram缓冲区和缓存.当从缓存中删除数据时,内核中还有任何时间指定.我的Ram被缓冲区和缓存充分利用,它也开始吃交换.

free -m的输出:

$free -m 
             total       used       free     shared    buffers     cached
Mem:         14034      13878        156          0         10      11362
-/+ buffers/cache:       2505      11528
Swap:         8187        478       7709

解决方法

不,它不吃掉掉.它仅用作块缓存.它大多数缓存,缓存不能进入交换,但是这个规则也存在一些例外.例如,在快速SSD上缓存慢速硬盘可能是一件好事.

但是,在您的情况下,情况要简单得多:Linux(以及任何其他操作系统)使用所有(或几乎所有)免费ram来缓存硬盘.并且,不,这不是问题,因为如果需要新的内存页面,则可以始终释放读取缓存页面.并尽可能多地使用块缓存,使平均文件操作速度更好.

实际上,如果你想知道系统的真正空闲内存,你应该计算“缓冲区”和“缓存”,就好像它是免费的一样.

您可以在“免费”标题上阅读的内容实际上是(通常非常极小的)内存大小,即使对于缓存也不会(甚至不能)使用.这不是问题,如果你的系统很慢,那不是因为这个原因.

交换使用的原因:某些内存块(内核看起来非常未使用)可以完全换出.这些特别是不同守护进程的内存区域,只留在ram中并且不做任何事情.换掉他们的内存不是问题,因为它们不用于任何东西,但使用他们现在免费的ram页面进行缓存可以使你的系统更快.

什么进程使用缓存?实际上很难找到,几乎不可能.块缓存未由进程填充,它由磁盘读取操作填充.如果磁盘块当前在缓存中(这意味着,再次读取此块不需要等待您的硬盘),这意味着有人读取了这个块,但它没有注册,这个过程就是这样.如果您想了解这些数据,您需要在磁盘读取使用情况发生时进行观察!

有一个工具,它的名字是blkmon.它能够观看块设备读取(和写入)操作,谷歌是你的朋友(或者我们正在等待你的下一个问题,在这里或在unix SE上).

相关文章

文章浏览阅读1.8k次,点赞63次,收藏54次。Linux下的目录权限...
文章浏览阅读1.6k次,点赞44次,收藏38次。关于Qt的安装、Wi...
本文介绍了使用shell脚本编写一个 Hello
文章浏览阅读1.5k次,点赞37次,收藏43次。【Linux】初识Lin...
文章浏览阅读3k次,点赞34次,收藏156次。Linux超详细笔记,...
文章浏览阅读6.8k次,点赞109次,收藏114次。【Linux】 Open...