我正在尝试提高高负载下的性能,并希望实现操作码缓存.我应该使用以下哪项?
APC - 安装指南
eAccelerator - 安装指南
XCache - 安装指南
我也对任何其他替代方案持开放态度.
目前使用Apache 2和PHP 5.2在Debian Etch上运行
[更新1]
添加了HowtoForge安装链接
[更新2]
根据给出的答案和反馈,我在我的应用程序上使用以下Apache JMeter测试计划测试了所有3个实现:
登录
访问主页
有50个并发连接,结果如下:
没有操作码缓存
APC
eAccelerator在
XCache将
性能图(越小越好)
从上面的结果来看,与APC和XCache相比,eAccelerator的性能略有优势.但是,从上述数据中最重要的是,任何类型的操作码缓存都会极大地提升性能.
由于以下两个原因,我决定使用APC:
软件包可在官方Debian存储库中找到
更多功能控制面板
总结一下我的经历:
易于安装:APC> eAccelerator> XCache
性能:eAccelerator> APC,XCache
控制面板:APC> XCache> eAccelerator
我认为答案可能取决于您运行的Web应用程序的类型.两年前我不得不自己做出这个决定,而且无法在Zend Optimizer和eAccelerator之间做出决定.
为了做出决定,我使用ab(apache bench)来测试服务器,并测试了三种组合(zend,eaccelerator,两者都运行),并证明eAccelerator本身具有最佳性能.
如果您有足够的时间,我建议您自己进行类似的测试,并根据您的结果做出决定.
我使用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
我已经使用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使一切变慢(!).