我正在努力提高高负载下的性能,并希望实现操作码缓存。我应该使用以下哪一项?
我也对任何其他替代方案持开放态度。
目前使用Apache 2和PHP 5.2在Debian Etch上运行
[更新1]
添加了HowtoForge安装链接
[更新2]
根据给出的答案和反馈,我在我的应用程序上使用以下Apache JMeter测试计划测试了所有3个实现:
有50个并发连接,结果如下:
无操作码缓存
APC
eAccelerator在
了XCache
性能图表(越小越好)
从上述结果来看,与APC和XCache相比,eAccelerator的性能略有优势。但是,从上述数据中最重要的是,任何类型的操作码缓存都会极大地提升性能。
由于以下两个原因,我决定使用APC:
总结我的经验:
易于安装:APC> eAccelerator> XCache将
性能:eAccelerator> APC,XCache
控制面板:APC> XCache> eAccelerator在
答案 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)
这些附加组件历来引入了许多奇怪的错误来追踪。这些错误可能导致不一致的行为,这些行为无法轻易诊断,因为它取决于缓存的状态。
所以我会说:
但我会说: