我在 apache2.conf 文件中将 maxRequestWorkers 的值设置为 4000。但是当我运行 apache2buddy perl 脚本时,报告的 maxrequestworkers 值为 150。apache2buddy perl 脚本如何计算 maxrequestWorkers(perl 专家能否分解 perl 脚本中的部分)?还有其他方法可以通过命令行验证 MaxRequestWorkers 吗?除了 apache2.conf 之外,还有其他文件可以定义此值吗?(环境是运行 ubuntu 的 ec2 实例中的 docker 容器。)
答案1
来自文档,“MaxRequestWorkers 指令”部分:
对于非线程服务器(即 prefork),MaxRequestWorkers 表示将启动用于处理请求的最大子进程数。默认值为 256;要增加该值,还必须增加 ServerLimit。
对于线程和混合服务器(例如事件或工作器),MaxRequestWorkers 限制了可用于为客户端提供服务的线程总数。对于混合 MPM,默认值为 16(ServerLimit)乘以 25(ThreadsPerChild)。因此,要将 MaxRequestWorkers 增加到需要超过 16 个进程的值,您还必须提高 ServerLimit。
在将 maxRequestWorkers 设置为该值之前,您必须确保 ServerLimit 乘以 ThreadsPerChild 的值至少为 4000。
注意不要将限制增加到超出硬件能力的范围,尤其是 CPU 和 RAM。
有关计算这些限制的信息,请参见例如 这个答案。