正如您所猜想的那样,我有一个使用 mod_php 和 Apache2 (prefork) 以及 APC 的服务器。该网站每天的访问量相当大,最多时同时有 280-290 个用户。几天前,我开始注意到 PHP 出现“无法分配内存”问题,而在流量较低时不会出现这种情况。
对此的一般解决方案是在 PHP.ini 文件中增加 PHP 的内存限制。我想知道当我增加内存限制时,这会如何影响性能和整体可扩展性。
服务器容量:8GB Ram,四核 i7(920)
启动服务器 80 最小备用服务器 40 最大备用服务器数 60 最大客户数 250 每个孩子的最大请求数 200
答案1
解决此问题的一般方法是增加 PHP 的内存限制
不。在某些情况下,这可能是正确的解决方案,但您没有提供任何分析细节。您不知道增加内存限制的后果,这意味着您对问题原因的分析可能是错误的。
无论是原始 GC 还是循环引用检查 GC,增加内存限制都会降低垃圾收集的频率,从而导致更多垃圾被保留在内存中。结果(在某些情况下)是它增加了内存不足问题。
您没有提供任何有关您的系统正在使用多少资源/有多少可用资源的真实信息。
280-290 位用户
该指标与容量/性能几乎无关。
注意:我并不是要求您提供进行更全面分析所需的信息 - 为了做出明智的建议,这比这里的帖子中应该包含的信息要多得多。
简短的回答是尝试一下,看看你的表现/错误会发生什么变化。
更长的答案是,您可能需要看看其他地方——您的代码/压缩/缓存。