59

我正在尝试提高高负载下的性能,并希望实现操作码缓存。我应该使用以下哪个?

我也对任何其他在我的雷达下溜走的替代品持开放态度。

目前在带有 Apache 2 和 PHP 5.2 的 Debian Etch 上运行

[更新 1]

添加了 HowtoForge 安装链接

[更新 2]

根据给出的答案和反馈,我在我的应用程序上使用以下 Apache JMeter 测试计划测试了所有 3 个实现:

  • 登录
  • 访问主页

50个并发连接,结果如下:

无操作码缓存
无操作码缓存

装甲运兵车
装甲运兵车

电子加速器
电子加速器

XCache
XCache

性能图(越小越好)
性能图

从以上结果来看,eAccelerator 与 APC 和 XCache 相比在性能上略有优势。但是,从上述数据中最重要的是,任何类型的操作码缓存都会极大地提高性能。

由于以下两个原因,我决定使用 APC:

  • 软件包在官方 Debian 存储库中可用
  • 更多功能控制面板

总结一下我的经验:

易于安装:APC > eAccelerator > XCache
性能:eAccelerator > APC,XCache
控制面板:APC > XCache > eAccelerator

4

7 回答 7

18

我认为答案可能取决于您正在运行的 Web 应用程序的类型。两年前我不得不自己做出这个决定,无法在 Zend Optimizer 和 eAccelerator 之间做出决定。

为了做出决定,我使用 ab (apache bench) 来测试服务器,并测试了三种组合(zend、eaccelerator、都在运行),并证明 eAccelerator 本身提供了最大的性能。

如果您有足够的时间,我建议您自己进行类似的测试,并根据您的结果做出决定。

于 2008-08-26T17:58:05.783 回答
6

我已经使用 eAcclerator、APC、XCache和 Zend Optimizer 运行了几个基准测试(尽管 Zend 是一个优化器,而不是缓存)。

基准测试结果 http://blogs.interdose.com/dominik/wp-content/uploads/2008/04/opcode_wordpress.png

结果:eAccelerator 最快(在所有测试中),其次是 XCache 和 APC。(图中的一个是调用 WordPress 主页 10,000 次的秒数)。

Zend Optimizer 让一切变得更慢(!)。

于 2008-08-26T19:37:52.440 回答
5

我使用 APC 是因为它很容易在 Windows 中安装,而且我正在 WAMP 上进行开发。

此处讨论了将 APC 集成到 PHP6 中: http ://www.php.net/~derick/meeting-notes.html#add-an-opcode-cache-to-the-distribution-apc

这里有关于在 Debian Etch 上安装 APC 的说明:http: //www.howtoforge.com/apc-php5-apache2-debian-etch

于 2008-08-26T19:00:26.383 回答
4

我不能肯定地告诉你,但我现在工作的地方是 APC 和 eAccelerator。但是,这可能会影响您 - APC 将被集成到 PHP 的未来版本中(感谢 Ed Haber 提供的链接)。

于 2008-08-26T17:52:25.937 回答
3

我在 eAccelerator 上取得了很好的成功(在无负载的情况下速度提高很明显),但 XCache 似乎也很有希望。您可能希望对每一个都进行一些试验,但您的应用程序可能会在每个上进行不同的扩展。

于 2008-08-26T17:57:14.227 回答
1

我已经使用 XCache 一年多了,一点问题都没有。

我试图切换到 eAccelerator,但最终出现了一堆分段错误(它对错误的容忍度较低)。eAccelerator 的主要好处是它不仅仅是一个操作码缓存,它还是一个优化器。

您应该对每个应用程序进行全面测试,以确保没有任何问题,然后我将使用 apachebench 在负载下对其进行测试。

于 2008-08-26T18:02:19.830 回答
1

这些附加组件在历史上引入了许多奇怪的错误来追踪。这些错误可能导致无法轻松诊断的不一致行为,因为它取决于缓存的状态。

所以我想说:

  1. 不要使用上述任何一种。相反,购买更多的锡,这是一种更可靠(即无错误)的提高性能的方法。或者
  2. 在测试过你的应用程序的裤子后,选择上述任何一个最强大的。

但我想说:

  1. 通过分析您的应用程序,确保确实是 PHP 代码解析导致您的性能问题。我认为它极有可能不是——在这种情况下,你会通过安装其中任何一个来浪费你的时间(实际上,消极地利用你的时间)。
于 2008-09-16T21:24:12.120 回答