APC显示100%碎片

时间:2010-02-17 09:15:40

标签: php apc

APC显示100%碎片。这不好吗?

这是否意味着它根本没有帮助?我可以采取哪些途径来改善现状?

提前致谢。

3 个答案:

答案 0 :(得分:11)

根据我的经验,是的。我有一个系统,APC显示100%碎片,性能不好。我增加了APC的内存限制(在我的情况下达到200 MB - 但我们有很多代码)足以让它有一些松弛的空间。碎片降至零,IIRC,服务器上的CPU使用率下降了50%。

此外,请确保使用APC附带的apc.php脚本来监视碎片/利用率。我们甚至写了一张nagios支票来观看APC,因为我们有足够的流量,当APC填满时,apache会完全锁定。

故事的道德:给予APC足够的记忆,并监控利用率。

答案 1 :(得分:2)

碎片意味着apc经常会从其缓存中抛出项目并添加新项目,并且无法找到足够大的连续块。

有两种主要方法可以提高性能

  • 为APC提供更多内存。理想情况下,APC可以将完整的脚本存储在内存中。
  • 在php.ini中使用apc.filter来过滤掉经常不经常或经常更改的文件。

使用短时间生活的apc_store()也很糟糕,因为经常使用apc_store()进行覆盖。

答案 2 :(得分:1)

  

[...]碎片会伤害性能,而不是内存本身的大小。但是当内存不足时,似乎也会发生碎片[...]

另请注意,apc.php的图表似乎存在错误:http://pecl.php.net/bugs/bug.php?id=13146