我应该使用哪种PHP操作码来提高性能?

时间:2008-08-26 17:50:53

标签: php performance caching

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

我也对任何其他替代方案持开放态度。

目前使用Apache 2和PHP 5.2在Debian Etch上运行

[更新1]

添加了HowtoForge安装链接

[更新2]

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

  • 登录
  • 访问主页

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

无操作码缓存
No Opcode Caching

APC
APC

eAccelerator在
eAccelerator

了XCache
XCache

性能图表(越小越好)
Performance Graph

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

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

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

总结我的经验:

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

7 个答案:

答案 0 :(得分:16)

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

为了做出决定,我使用ab(apache bench)来测试服务器,并测试了三种组合(zend,eaccelerator,两者都运行),并证明eAccelerator本身具有最佳性能。

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

答案 1 :(得分: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

答案 2 :(得分:5)

我运行了几个benchmarks with eAcclerator, APC, XCache和Zend Optimizer(即使Zend是优化器,而不是缓存)。

Benchmark Results http://blogs.interdose.com/dominik/wp-content/uploads/2008/04/opcode_wordpress.png

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

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

答案 3 :(得分:4)

我不能肯定地告诉你,但我现在正在工作的地方是看APC和eAccelerator。但是,这可能会影响您 - APC will be integrated into a future release of PHP(感谢Ed Haber的链接)。

答案 4 :(得分:3)

我在eAccelerator上取得了很大的成功(无负载的速度提升是显而易见的)但XCache看起来也很有前途。您可能希望对每个试验进行一些试验,但您的应用程序可能会在每个试验中进行不同的扩展。

答案 5 :(得分:1)

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

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

你应该用它们中的每一个完全测试你的应用程序,以确保没有任何问题,然后我将使用apachebench在负载下测试它。

答案 6 :(得分:1)

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

所以我会说:

  1. 请勿使用上述任何一项。购买更多的锡,它是一种更可靠(即无差错)的提高性能的方式。 OR
  2. 使用以上任何一种最强大的方法,在你的应用程序中测试裤子。
  3. 但我会说:

    1. 通过分析应用程序来确保它是真正的PHP代码解析导致性能问题。我认为它很可能不是 - 在这种情况下你会浪费你的时间(实际上,通过安装其中任何一个来消耗你的时间)。