内存使用率很高,但没有被任何进程声明?

在我们的Debian服务器上对LVM进行压力testing的时候,我遇到了这个问题,内存会占用大量内存,但是没有任何进程需要内存。 请参阅http://i.imgur.com/cLn5ZHS.png ,并参阅https://serverfault.com/a/449102/125894了解htop中使用的颜色。

为什么发生这种情况?
有没有什么办法可以看到什么进程正在使用内存?
Htopconfiguration为不隐藏任何进程,那么htop缺失的是什么?

在这个特殊情况下,我可以肯定地说,这是由lvmcreate,lvmremove或dmsetup直接或间接造成的,因为我正在进行压力testing。 请注意,这个问题不是解决LVM问题,而是解释为什么内存不被任何进程所要求。 停止所有LVM命令确实将内存降低到<600MB。

free -m输出:

  total used free shared buffers cached Mem: 32153 31958 194 0 52 3830 -/+ buffers/cache: 28075 4077 Swap: 975 0 975 

顶部,由于它的长度在pastebin的输出: http : //pastebin.com/WchrpF7W

由于您似乎正在运行I / O相关的testing(您没有详细解释您使用LVM卷所做的操作),有没有可能您发现的行为与自然OS页面caching有关?

我正在考虑使用(有时几乎所有)可用内存(即,不由应用程序保留的内存)的Linux标准行为来caching最近访问的磁盘区域,以便加速IO。

当然,活动应用程序优先于这个caching,所以如果一个进程需要更多的内存,cachingdynamic缩小。

网上有很多关于Linux页面caching的文档, 这里有一个。