KeepAliveclosures时的Apache MaxClients设置

用apache,当KeepAliveclosures时减lessMaxClients是合理的吗? 目前,MaxClients被设置为150,这是mpm-worker的默认值。

  • nginx提供静态文件和反向代理到Apache
  • 我们每秒平均需要12-15个请求
  • 四核心盒上的CPU负载平均值不会超过0.8

谢谢!

使用MaxClients停止交换你的服务器..这通常是我如何处理它。

我试着弄清楚每个apache进程大概有多大,然后弄清楚我能合理地适应内存的多less – 这是我的MaxClients设置。

如果您的网站受到超过MaxClients请求的抨击,您不应该最终交换。 额外的客户端将坐在套接字队列中,直到工作者变得可用。 如果时间太长,服务器将超时。 如果队列太长,他们会被拒绝连接。

如果您将MaxClients设置得太高,您的networking服务器将启动抖动和交换。 发生这种情况时,每个请求将花费更长的时间来处理,最终会导致问题复杂化。

除非您遇到任何问题,否则我几乎没有理由降低MaxClients。 如果有的话,如果你得到很多的stream量,你通常会从默认值提高它。

在你的设置中,nginx正在处理所有的最终用户连接,Apache基本上是一个应用服务器。 只要你有足够的线程来处理请求,你应该没问题。 如果你需要其他许多的话,线程只能增长到150,如果你保留了默认值,它将从MinSpareServers 5开始。 由于它是一个四核心的机器,32个左右的线程可能是你需要的最多的线程,尽pipe这取决于Apache在你的后端等待时发生了多less延迟或阻塞。

总而言之,我可能会离开MaxClients,并确保StartServers是25(或任何可以支持您的正常负载),而不是5,以便您的服务器一旦准备好处理生产stream量。 然后,我会提醒线程超过50或任何似乎“太高”为您的平常负载,因为这可能表明performance不佳的后端或攻击您的网站。

编辑:不知道为什么我假设你有线程,但它也是一样的过程。

将MaxClients设置为恰好低于您的计算机将耗尽RAM的级别的值(假设它是专用Web服务器)

如果您不希望有大量stream量,请确保您的监控系统正在检查运行apaches的数量。 如果它变高,试着找出原因。

通常情况下,对于典型的高stream量站点,通常应该开启Alive,并且设置为非常快的时间。