Apache工作者在3.000个用户之后崩溃

我激活了我的VPS上的Apache Worker,并遇到了问题,因为当3000个用户访问该网站时,该网站崩溃。 我使用http://whos.amung.us/stats/2jzwlvbhvpft/作为计数器。

我的Apache工作者configuration:

KeepAlive On MaxKeepAliveRequests 0 KeepAliveTimeout 1 <IfModule mpm_worker_module> ServerLimit 20000 StartServer 8000 MinSpareThreads 10400 MaxSpareThreads 14200 ThreadLimit 5 ThreadsPerChild 5 MaxClients 20000 MaxRequestsPerChild 0 </IfModule> 

VPS有SO:Debian 64 LAMP,内存:14GB,CPU:24ghz

我能做些什么来提供最佳performance?

尝试启动器的configuration(相当多的VPS服务器):

 MaxClients 2000 ThreadsPerChild 50 ServerLimit 40 

这给你2000个线程和40个进程(每个进程50个线程)同时处理最多2000个客户端。 如果你想增加ThreadsPerChild的值大于64,不要忘记改变ThreadLimit。

它看起来像你内存不足,阿帕奇崩溃,因为它使用超过可用内存。

我不是很熟悉工人MPM,但我认为你的configuration远远超过你的可用内存。

例如,每个进程有5个线程,并且有20000个MaxClient。 这意味着要为您的最大客户端服务,您需要20000/5=4000并发的apache进程。 考虑到13 GB内存(系统为1 GB),并且apache进程大小平均为15 MB,则只能为大约4300个客户端提供服务。

我假设你也在那里运行一个数据库。 这使得apache在大约3000个客户端死亡是合理的。

您应该像@David Schwartzbuild议的那样减lessMaxClients和MinSpareThreads的数量。