APC显示出 100% 的碎片化。这很糟糕吗?
这是否意味着它根本没有帮助?我应该采取哪些途径来改善情况?
提前致谢。
以我的经验,是的。我有一个系统,其中 APC 显示 100% 碎片,性能很差。我增加了 APC 的内存限制(在我的情况下为 200 MB - 但我们有很多代码)足以给它一些松弛空间。碎片化降至零,IIRC,服务器上的 CPU 使用率下降了 50%。
此外,请确保您使用 APC 附带的 apc.php 脚本来监控碎片/利用率。我们甚至编写了一个 nagios 检查来监视 APC,因为我们有足够的流量,当 APC 填满时,apache 会完全锁定。
故事的寓意:给 APC 足够的内存,并监控利用率。
碎片化意味着 apc 经常从它的缓存中丢弃项目并添加新项目,并且很难找到足够大的连续块。
那么有两种主要的方法来提高性能
同样使用 apc_store() 的生命周期很短,因为经常使用 apc_store() 覆盖也是如此。
[...] 碎片化会损害性能,而不是内存本身的大小。但是,当内存不足时,似乎也会发生碎片 [...]
另请注意,apc.php 的图表似乎存在错误:http ://pecl.php.net/bugs/bug.php?id=13146