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

在我们的一个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 举报,一经查实,本站将立刻删除。

相关推荐


查找全部容器的日志文件 $ sudo find /var/lib/docker/containers -name *.log 查看日志位置 $ docker inspect --format=&#39;{{.LogPath}}&#39; &lt;container_name&gt; 实时查询内容 $
Linux日志文件中列属性的详细解析
在Linux系统中没有duf命令,如何有效地管理磁盘空间?
深入探讨EncryptPad在Linux操作系统中的功能和优势
原理和应用场景:Linux中ttyload工具的工作原理和实际用途
深度解析SELinux的三种策略类型
评估Linux系统性能的ttyload工具使用效果
分享在Linux系统中检测SSH版本的方法
介绍Linux平台上的数据加密工具EncryptPad
在Linux系统中,如何查看和诊断块设备信息?
在Linux环境下如何查看块设备信息?
探索Linux操作系统下的数据加密工具EncryptPad
学会在Linux系统中查看硬盘信息
分析SELinux:原理与实践
掌握SELinux策略类别
技巧:有效解读和管理Linux日志文件
查看Linux系统中的所有用户
了解Linux系统中各种不同类型的日志文件
深入理解Linux PS命令
方法:在Linux操作系统中查看用户