configurationApache2 / mpm-worker不要吃掉所有服务器的RAM

Th服务器运行着40个WordPress站点。 最初,当服务器有2GB的内存时,使用mod_php和mpm-prefork来设置服务器,并且运行起来很舒服。 然而,最近我更新了服务器以使用FastCGI,suexec和mpm-worker。 从那时起,我无法让Apache免受吞噬所有可用RAM,直到它开始交换,并最终停止响应。

为了缓解这个问题,我们把服务器从2GB提高到了4GB,但是在7个小时之后,服务器占用了所有的4GB,并重新进入了交换。

在mpm-prefork下,我们只设置MaxClients,一切都很好。 但对我来说,在mpm-worker下,我找不到似乎工作的设置。 MaxRequestsPerChild,ThreadsPerChild和MaxClients的任何组合仍然会导致相同的结果。 我以前从来没有和mpm-worker合作过,所以我不确定如何调整。 我已经花费了无数个小时来searchApache2.conf中的设置,并尝试了几十个设置,但是它们都使用了所有内存的同一条path。

使用4GB的服务器,为其他进程留下大约400MB的空间,并且知道每个Apachesubprocess在生成时都运行在50MB左右,那么什么样的设置组合应该可以让服务器尽量避免使用内存?

当前的设置:

<IfModule mpm_worker_module> StartServers 6 ServerLimit 25 MinSpareThreads 25 MaxSpareThreads 50 ThreadLimit 75 ThreadsPerChild 25 MaxClients 75 MaxRequestsPerChild 2000 

我在运行在Amazon EC2上的微型虚拟机上使用mpm-prefork运行mod_fcgid ,祝您好运。 我不需要做任何调整,但我的工作量与你的不同。

但是你应该做的是找出WordPress的哪个部分占用了这么多的RAM。 我假设你正在通过大量的networking用户使用一堆RAM,而不仅仅是因为Apache运行了一段时间。