我的networking服务器每隔一段时间(最终崩溃之前)都会得到莫名其妙的内存峰值,我无法弄清楚是什么原因造成的,或者是如何解决这个问题。 我花了整个上午看错误和访问日志,我找不到任何不寻常的东西。
我有3个图像:
服务器状态图: 
最佳: 
ps辅助:(编辑 – 网站不会让我发布第三,因为我太新了)
任何帮助解决这个奥秘将不胜感激。
你可以请pastebin的/proc/meminfo输出。
此外,我不知道你什么时候拿到顶部的快照,但我看到你没有使用任何caching的内存。 你有什么知识为什么这样或你有没有注意到这一点?
除此之外,您还可以在崩溃之前提供/var/log/messages的相关部分。
顺便说一下,一个httpd进程处于Z状态,但不会导致问题。
另外,查看sar日志,看看是否可以识别任何内存使用模式。
你有2G的内存,你正在运行MySQL,Apache的HTTPd,qmail,spamd …所有这些都需要内存,所以你需要打开你的内存,并在你的系统上设置SWAP。
寻找在现场服务器上导致内存峰值的原因并不是一件容易的事情。 这将是更棘手的,因为你有一系列的服务,其中任何可能是罪魁祸首。
作为一个骗子,我已经排在内存使用sorting的顶端运行。 这样,当服务器崩溃,它离开我的terminal在最后一个顶部的屏幕,至less可以告诉我哪个过程是可能的罪魁祸首。
然后,它正在与该服务工作,试图找出罪魁祸首。
在我们的例子中,原来PHP的最大内存设置为太高的值。
造成这个问题的原因是,一旦孩子用完了一定量的记忆,apache就不会清除记忆,直到孩子被收割为止,这可能不会发生很长一段时间。
这可以build立并最终完成所有的记忆。
我没有使用qmail的经验,所以不能评论它的内存使用情况,但默认设置的mysql往往使用大约50米,如上图所示。
祝你好运