我正在努力减少服务器上Apache的内存使用量。
我实际每个孩子的最大连接数是10k
根据以下建议
每个孩子的最大连接数应减少到1000
http://www.lophost.com/tutorials/how-to-reduce-high-memory-usage-by-apache-httpd-on-a-cpanel-server/
Apache配置中每个子节点的最大连接数的建议最大值是什么?
答案 0 :(得分:7)
此指令影响任何事情的唯一时间是Apache工作人员泄漏内存。这种情况的一种方式是分配内存(通过malloc()
或其他)并且永远不会释放。它是Apache或其模块中设计/实现缺陷的结果。
这个指令实际上是一个黑客攻击 - 但是如果有一些模块被加载到Apache中,每个请求都会泄漏8个字节,那么在经过大量请求之后,你就会# 39; ll内存不足。因此,快速修复只是在每个MaxConnectionsPerChild请求时终止进程并启动一个新进程。
如果您在将MaxConnectionsPerChild设置为零时看到它在许多请求的范围内逐渐增加,这只会影响您的内存使用量。
答案 1 :(得分:1)
默认值为0(表示每个孩子没有最大连接数),因此除非内存泄漏,否则我不知道需要更改此设置-我同意Hut8。
在Apache 2.4 Performance调整页面中共享FYI:
与进程创建有关的是由MaxConnectionsPerChild设置引起的进程死亡。默认情况下,该值为0,这意味着每个孩子处理的连接数没有限制。如果您的配置当前将此值设置为一个非常低的数字(例如30),则可能需要将其设置得很大。如果您运行的是SunOS或旧版本的Solaris,则由于内存泄漏而将其限制为10000左右。
并从Apache 2.4 docs on MaxConnectionsPerChild:
将MaxConnectionsPerChild设置为非零值会限制(偶然的)内存泄漏导致进程占用的内存量。