Apache“httpd”进程,利用我所有的服务器内存

我有一个1.7 GB内存的小型EC2实例,运行基于CentOS的Amazon AMI,但是Apache使用太多内存的问题比它应该的要多。 如果你看看截图,内存使用率将在90-100%,直到我重新启动httpd服务,它将重新开始,增加到90%以上。

在这里输入图像描述

我真的很感谢一些帮助如何find问题。 这可能是“正常”的Apache行为,利用所有可用的内存? 或者有可能发生泄漏,我必须追捕。 目前我有点困惑,可能会发生什么事情。

我们正在使用Apache MPM prefork,并没有SQL或类似的东西 – 只是阿帕奇。 网站在这里 。

正如HTTP500所说,除非机器真的窒息,否则你可能不应该担心。 看看帮助! Linux吃了我的RAM! 。 这不是一个类似的情况,因为你有进程而不是使用RAM的缓冲区,但它不是太遥远:你的机器的物理RAM是一个要使用的资源,要么与内核缓冲区或备用的Apache工作进程来处理来电要求。 如果你没有使用内存,你已经为你的盒子大小多付了。

无论如何,如果你想玩MPM设置,Apache文档是http://httpd.apache.org/docs/current/mod/prefork.html

您也许可以减lessMinSpareServers,StartServers等等,正如您所说的网站stream量低。 然后你将有更多的空闲内存被内核缓冲区用于恶意目的。

linux使用你所有的内存是正常的,否则不用的内存被重新定义为磁盘caching。 看: linux吃了我的内存

您可以通过查看free -m的输出结果来validation,并期望看到如下所示:

  total used free shared buffers cached Mem: 7889 6887 101 0 106 2307 -/+ buffers/cache: 5373 3416 Swap: 1903 17 1886 

+/-缓冲区/caching行是你想要的。 它增加了cachingram,让您更好地了解有多less内存是真正可用的。 在这种情况下,您要注意3416号码,而不是101号码。