16

APC显示出 100% 的碎片化。这很糟糕吗?

这是否意味着它根本没有帮助?我应该采取哪些途径来改善情况?

提前致谢。

4

3 回答 3

11

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

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

故事的寓意:给 APC 足够的内存,并监控利用率。

于 2010-06-03T23:14:45.673 回答
2

碎片化意味着 apc 经常从它的缓存中丢弃项目并添加新项目,并且很难找到足够大的连续块。

那么有两种主要的方法来提高性能

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

同样使用 apc_store() 的生命周期很短,因为经常使用 apc_store() 覆盖也是如此。

于 2011-09-28T13:16:16.480 回答
1

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

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

于 2010-02-17T09:23:01.927 回答