Apache 2.4最大并发用户数限制

我无法确定,我的Apache实例可以处理多less用户。

我从Ubuntu存储库安装了Apache 2.4.18,据我所知,所有的设置都是默认设置。

我做了服务器压力testing,发现当超过300个正在进行的请求时,服务器开始丢弃新的请求,为响应代码502或504提供服务。

我尝试在服务器configuration文件和文档中find解释,但是我无法发现“300”来自哪里。

我使用mpm_prefork ,像这样的configuration文件:

 <IfModule mpm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxRequestWorkers 150 MaxConnectionsPerChild 0 </IfModule> 

来自apache2.conf一些特性:

 Timeout 300 KeepAlive On MaxKeepAliveRequests 500 KeepAliveTimeout 5 

所以问题是什么是我的(默认)configurationApache DEFAULT最大并发客户端限制 ? 我不想调整Apache来处理尽可能多的连接 – 只有了解Apache如何计算最大并发客户端数量。

根据Apache 文档 ,

对于非线程服务器(例如,prefork), MaxRequestWorkers将转换为将为启动服务请求而启动的最大subprocess数。 默认值是256。

根据您的可用RAM,默认设置通常太高。

要确定正确的设置,请查看您的平均Apache进程大小以获得使用x MB。 考虑要为其他进程保留多less内存y MB,并将此公式用于prefork。

 (Total RAM – yMB)/xMB = MaxRequestWorkers 

注意:对于Apache本身和操作系统,“y”值总是至less 500 MB,可能需要更多取决于其他应用程序。

至于其他值, Apache文档一再build议不要提高这些值,除非“在非常繁忙的站点上”,根据定义,例如只有2-4GB总RAM的站点永远不会。 以下将是很好的:

 StartServers 2 MinSpareServers 5 MaxSpareServers 10 

有关其他参考资料,可以查看Apache文档以调优此问题。