在我们的一个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
由于它的长度,在pastebin上输出top:http://pastebin.com/WchrpF7W
解决方法
由于您似乎正在运行与I / O相关的测试(您没有详细解释您对LVM卷所做的操作),您注意到的行为是否有可能与自然OS页面缓存有关?
我正在考虑使用(有时几乎所有)可用内存(即应用程序未保留的内存)来缓存最近访问过的磁盘区域的Linux标准行为,以加速IO.
当然,活动应用程序优先于此缓存,因此如果进程需要更多ram,则缓存会动态缩小.
网上有很多关于Linux页面缓存的文档,here就是其中之一.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。