我正在尝试减少服务器上 Apache 的内存使用量。
我每个孩子的实际最大连接数是 10k
根据以下建议
每个孩子的最大连接数应减少到 1000
http://www.lophost.com/tutorials/how-to-reduce-high-memory-usage-by-apache-httpd-on-a-cpanel-server/
Apache 配置中每个孩子的最大连接数的建议最大值是多少?
我正在尝试减少服务器上 Apache 的内存使用量。
我每个孩子的实际最大连接数是 10k
根据以下建议
每个孩子的最大连接数应减少到 1000
http://www.lophost.com/tutorials/how-to-reduce-high-memory-usage-by-apache-httpd-on-a-cpanel-server/
Apache 配置中每个孩子的最大连接数的建议最大值是多少?
该指令影响任何事情的唯一时间是当您的 Apache 工作人员泄漏内存时。发生这种情况的一种方法是分配内存(通过malloc()
或其他方式)并且从未释放。这是 Apache 或其模块中的设计/实现缺陷的结果。
这个指令实际上有点像黑客攻击——但是如果加载到 Apache 中的某个模块会泄漏,例如每个请求 8 个字节,那么在大量请求之后,您将耗尽内存。所以快速解决方法是杀死每个 MaxConnectionsPerChild 请求的进程并启动一个新进程。
如果您在将 MaxConnectionsPerChild 设置为零时看到它在大量请求的范围内逐渐增加,这只会影响您的内存使用量。
默认值为 0(这意味着每个孩子没有最大连接数),因此除非您有内存泄漏,否则我不知道有任何需要更改此设置 - 我同意 Hut8。
从Apache 2.4 性能调整页面在这里分享仅供参考:
与进程创建相关的是由 MaxConnectionsPerChild 设置引起的进程死亡。默认为 0,这意味着每个子节点处理的连接数没有限制。如果您的配置当前将此设置为某个非常低的数字,例如 30,您可能希望显着提高此值。如果您正在运行 SunOS 或旧版本的 Solaris,请将其限制为 10000 左右,因为内存泄漏。
并且来自MaxConnectionsPerChild 上的 Apache 2.4 文档:
将 MaxConnectionsPerChild 设置为非零值会限制进程可能因(意外)内存泄漏而消耗的内存量。