【问题标题】:Where has my used memory gone?我用过的内存去哪儿了?
【发布时间】:2012-03-11 15:00:45
【问题描述】:

我有一个 16GB 物理内存并运行一些应用程序的 linux 硬件服务器。到目前为止,该服务器已启动并运行了大约 365 天,我观察到“free -m”显示内存不足。

             total       used       free     shared    buffers     cached
Mem:         14966      13451       1515          0        234        237
-/+ buffers/cache:      12979       1987
Swap:         4094        367       3727

据我了解,1987 年是系统中的实际可用内存不到 14%。如果我在“ps -A v”输出中或从“top”中添加 %MEM 部分,它的总和不会达到 100%。

我需要了解为什么内存这么低?

更新(2012 年 2 月 29 日):
让我把这个问题分成两部分:
1) 系统的可用内存较少。
2) 确定已用内存的去向。

对于 1),我理解;如果系统的可用内存不足,我们可能会看到性能逐渐下降。在某些时候,分页会为系统提供额外的空闲内存,从而恢复系统的性能。如果我错了,请纠正我。

对于 2),现在这就是我想了解的已用内存在哪里消失了。如果我总结“ps -A v”或“top -n 1 -b”的输出中的 %MEM,它不会超过 50%。那么剩下的 40% 的不可追踪内存在哪里占。我们在服务器中有自己的内核模块。如果这些模块泄漏内存,它们会被计入帐内。是否可以知道内核模块中的泄漏量。

【问题讨论】:

  • 这台服务器上正在运行什么,可能是内存泄漏服务器,或者只是一个需要内存的重度使用的数据库,linux即使只有100Mo内存也能顺利运行,你不应该惊慌。尝试观察 top 命令的结果
  • 我也在观察 top 命令的输出。但这并没有多大帮助。有一个进程占用1.9G左右内存;但即使系统刚刚启动也是如此。
  • 1) 是绝对错误的,并且是一种常见的误解。在所有其他条件相同的情况下,可用内存越低,使用的内存就越高。使用更多内存提高性能,这就是我们向系统添加内存以使其更快的原因。

标签: linux memory system memory-leaks


【解决方案1】:

它没有用完。可用内存不足。但这很好,因为空闲内存完全没用。 (空闲内存是指不会提供好处的内存。空闲内存是放在架子上和计算机中有用的内存。)

空闲内存很糟糕,它没有任何用处。低可用内存是好的,这意味着您的系统已经发现您的大部分内存都得到了使用。

那么有什么不好的呢?如果您的系统是因为它没有足够的内存正在使用

【讨论】:

  • 我们实际上跟踪系统的空闲内存。如果低于 10%,则会触发警报。如果 free -m 不可信,哪个命令输出将告诉 linux 系统上实际的空闲内存。
  • @Taroko 没有合理的理由触发可用内存不足的警报。可用内存不足是正常且正确的。在过度寻呼时触发警报可能是有意义的。如果缓存被挤压,触发警报可能是有意义的。这取决于你真正关心的是什么。 (也许您关心进程是否使用了过高百分比的内存?)
【解决方案2】:

【讨论】:

  • 我正在读取正确的数字作为可用内存。如果您看到我的问题,我会将 1987 年解释为免费内存,这也是本网站提到的。
  • 不幸的是,该页面非常具有误导性。用于高速缓存和缓冲区的内存不是空闲的。事实上,空闲内存糟糕,并不比放在办公桌上的内存好。该网站应该纠正人们认为免费内存很好的误解,而不是试图说服人们他们拥有更多的内存。 (这导致了 OP 的困惑——认为你没有“足够”的可用内存。)
【解决方案3】:

我能够识别并解决我的问题。但这并非没有http://linux-mm.org/Low_On_Memory 提供的信息的帮助。

dentry 在slabinfo 的内存大约为 5GB。发出“sync”命令后,脏页同步到硬盘驱动器,命令“echo 3 > /proc/sys/vm/drop_caches”通过删除更多缓存释放了更多内存。

除了上述网站中的文献外,内核以取决于 vfs_cache_pressure (/proc/sys/vm/vfs_cache_pressure) 的速率回收内存。

感谢大家的帮助。

【讨论】:

  • 在我使用它的服务器上从 250M 免费到 28GB 免费。此外,流程运行更顺畅,这令人惊讶。
  • 底线作为 sudoer 运行:sync && echo 3 > /proc/sys/vm/drop_caches
猜你喜欢
  • 1970-01-01
  • 2016-03-24
  • 2011-10-25
  • 2010-09-11
  • 1970-01-01
  • 2017-02-06
  • 2011-07-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多