我激活了我的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的数量。