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

Sha*_*ipf 7 linux monitoring memory lvm memory-usage

在我们的一台 Debian 服务器上对 LVM 进行压力测试时,我遇到了这个问题,即内存会被大量填满,导致服务器内存不足,但没有进程会占用内存。有关htop 中使用的颜色的说明,请参见http://i.imgur.com/cLn5ZHS.png,并参见https://serverfault.com/a/449102/125894

为什么会这样?
有什么方法可以查看正在使用内存的进程吗?
htop 被配置为不隐藏任何进程,那么 htop 缺少什么?

在这种特殊情况下,我可以肯定地说它是由 lvmcreate、lvmremove 或 dmsetup 直接或间接引起的,因为我正在对其进行压力测试。请注意,这个问题不是关于解决 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
Run Code Online (Sandbox Code Playgroud)


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

小智 3

由于您似乎正在运行 I/O 相关测试(您没有详细解释您对 LVM 卷所做的操作),您注意到的行为是否有可能与自然操作系统页面缓存相关?

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

当然,活动应用程序优先于该缓存,因此如果进程需要更多内存,缓存会动态收缩。

网上有很多关于 Linux 页面缓存的文档,这里是其中之一。