我在我的 VPS 上激活了 Apache Worker,但遇到了问题,因为当 3000 个用户访问网站时,网站会崩溃。我正在使用http://whos.amung.us/stats/2jzwlvbhvpft/作为反击。
我的 Apache Worker 配置:
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
我要怎么做才能发挥出最佳表现?
答案1
首先尝试一下此配置(对于 VPS 服务器来说相当多):
MaxClients 2000
ThreadsPerChild 50
ServerLimit 40
这为您提供了 2000 个线程和 40 个进程(每个进程 50 个线程),可同时处理最多 2000 个客户端。如果您想将 ThreadsPerChild 的值增加到大于 64,请不要忘记同时更改 ThreadLimit。
答案2
看起来您的内存正在耗尽,并且 apache 正在崩溃,因为它使用的内存超过了可用内存。
我对 worker mpm 不是很熟悉,但我认为您的配置远远超出了您的可用内存。
例如,每个进程有 5 个线程,MaxClient 为 20000 个。这意味着要为 Max 客户端提供服务,您需要20000/5=4000
并发 Apache 进程。考虑到 13 GB 内存(系统内存为 1 GB),Apache 进程大小平均为 15MB,您只能为大约 4300 个客户端提供服务。
我假设你也在那里运行数据库。这使得 Apache 在客户端数量达到 3000 左右时死机也是合乎情理的。
您应该按照@David Schwartz 的建议减少 MaxClients 和 MinSpareThreads 的数量。