Apache 2 工作服务器池管理应设置哪些值?

Apache 2 工作服务器池管理应设置哪些值?

我最近从 Apache 2.2 prefork 切换到 Apache 2.2 worker,但我不知道什么样的 MPM 配置才适合入门。在 prefork 上,我使用了:
MaxClients 256
StartServers 190
MinSpareServers 160
MaxSpareServers 220

我希望能够至少接受尽可能多的同时请求(190)

谢谢 !

PS:服务器环境:Debian 5.0、2x 3.00 Ghz、4 GB RAM,专用于 Apache。

答案1

ServerLimit 256
MaxClients 256
StartServers 19
ThreadsPerChild 10
MinSpareThreads 160
MaxSpareThreads 220
MaxRequestsPerChild 10000

这会:

  • httpd启动时启动190个线程
  • 最多可同时处理 256 个请求
  • 确保至少有 160 个备用线程
  • 最多限制 220 个备用线程
  • 在用新子进程替换每个 httpd 子进程之前,将其限制为处理 10,000 个请求。这有助于防止在底层应用程序发生内存泄漏时挂起 apache 服务器。

答案2

最后,我使用了以下设置,效果很好:

StartServers 8
MaxClients 1024
MinSpareThreads 512
MaxSpareThreads 1024
ThreadsPerChild 64
MaxRequestsPerChild 10000

我选择了更大的值,因为内存占用应该小得多。我还注意到,当使用奇怪的值运行 apachectl configtest(或 start/stop)时,它会报告错误并自动调整设置。

相关内容