答案 0 :(得分:11)
根据我的经验,是的。我有一个系统,APC显示100%碎片,性能不好。我增加了APC的内存限制(在我的情况下达到200 MB - 但我们有很多代码)足以让它有一些松弛的空间。碎片降至零,IIRC,服务器上的CPU使用率下降了50%。
此外,请确保使用APC附带的apc.php脚本来监视碎片/利用率。我们甚至写了一张nagios支票来观看APC,因为我们有足够的流量,当APC填满时,apache会完全锁定。
故事的道德:给予APC足够的记忆,并监控利用率。
答案 1 :(得分:2)
碎片意味着apc经常会从其缓存中抛出项目并添加新项目,并且无法找到足够大的连续块。
有两种主要方法可以提高性能
使用短时间生活的apc_store()也很糟糕,因为经常使用apc_store()进行覆盖。
答案 2 :(得分:1)
[...]碎片会伤害性能,而不是内存本身的大小。但是当内存不足时,似乎也会发生碎片[...]
另请注意,apc.php的图表似乎存在错误:http://pecl.php.net/bugs/bug.php?id=13146