【问题标题】:What is the recommended max value for Max Connections Per Child in Apache configuration?Apache 配置中每个孩子的最大连接数的建议最大值是多少?
【发布时间】:2014-05-09 02:12:05
【问题描述】:
【问题讨论】:
标签:
apache
connection
server-configuration
【解决方案1】:
该指令影响任何事情的唯一时间是当您的 Apache 工作人员泄漏内存时。发生这种情况的一种方法是分配内存(通过malloc() 或其他方式)并且从未释放。这是 Apache 或其模块的设计/实现缺陷造成的。
这个指令确实有点 hack —— 但是如果加载到 Apache 中的某些模块会泄漏,例如,每个请求 8 个字节,那么在大量请求之后,您将耗尽内存。因此,快速解决方法是杀死每个 MaxConnectionsPerChild 请求的进程并启动一个新进程。
如果您在将 MaxConnectionsPerChild 设置为零时看到它在大量请求的范围内逐渐增加,这只会影响您的内存使用量。
【解决方案2】:
默认值为 0(这意味着每个孩子没有最大连接数)所以除非您有内存泄漏,否则我不知道有任何需要更改此设置 - 我同意 Hut8。
来自Apache 2.4 Performance Tuning 页面的仅供参考:
与进程创建相关的是由 MaxConnectionsPerChild 设置引起的进程死亡。默认为 0,这意味着每个子节点处理的连接数没有限制。如果您的配置当前将此设置为某个非常低的数字,例如 30,您可能希望显着提高此值。如果您运行的是 SunOS 或旧版本的 Solaris,请将其限制为 10000 左右,因为内存泄漏。
来自Apache 2.4 docs on MaxConnectionsPerChild:
将 MaxConnectionsPerChild 设置为非零值会限制进程可能因(意外)内存泄漏而消耗的内存量。