Which PHP opcode cacher should I use to improve performance?我正在尝试在高负载下提高性能,并希望实现操作码缓存。我应该使用以下哪项?
我也愿意接受其他任何在我的雷达下溜走的选择。 当前在具有Apache 2和PHP 5.2的普通Debian Etch上运行 [更新1] 添加了HowtoForge安装链接 [更新2] 基于给出的答案和反馈,我已经在我的应用程序上使用以下Apache JMeter测试计划对所有3种实现进行了测试:
使用50个并发连接,结果如下: 无操作码缓存 APC eAccelerator XCache 性能图(越小越好) 根据以上结果,与APC和XCache相比,eAccelerator的性能略有下降。但是,从以上数据中最重要的是,任何类型的操作码缓存都可以极大地提高性能。 由于以下两个原因,我决定使用APC:
总结我的经验: 易于安装:APC> eAccelerator> XCache 我认为答案可能取决于您所运行的Web应用程序的类型。我两年前不得不自己做出这个决定,无法在Zend Optimizer和eAccelerator之间做出决定。 为了做出我的决定,我使用ab(apache Bench)来测试服务器,并测试了三种组合(zend,eaccelerator,两者都在运行),并证明了eAccelerator本身可以提供最佳性能。 如果时间充裕,我建议您自己进行类似的测试,并根据您的结果做出决定。 我已经使用eAcclerator,APC,XCache和Zend Optimizer运行了多个基准测试(即使Zend是优化程序,而不是缓存)。 基准测试结果http://blogs.interdose.com/dominik/wp-content/uploads/2008/04/opcode_wordpress.webp 结果:eAccelerator最快(在所有测试中),其次是XCache和APC。 (图中的数字是调用WordPress主页10,000次的秒数)。 Zend Optimizer使一切变慢(!)。 我使用APC是因为它很容易在Windows中安装,并且我正在WAMP上进行开发。 在此处讨论了将APC集成到PHP6中的问题: 这里有在Debian Etch上安装APC的说明: 我不能肯定地告诉你,但是我现在工作的地方是APC和eAccelerator。但是,这可能会影响您-APC将集成到PHP的将来版本中(感谢Ed Haber的链接)。 我在eAccelerator上取得了不错的成功(在没有负载的情况下,速度的提高很明显),但是XCache似乎也很有前途。但是,您可能需要对每个程序进行一些试验,您的应用程序在每个程序上的缩放比例可能会有所不同。 这些附件在历史上引入了许多奇怪的bug来进行追踪。这些错误可能导致不一致的行为,由于依赖于缓存的状态,因此无法轻松诊断它们。 所以我想说: 或者 但是我会说: 我已经使用XCache一年多了,没有任何问题。 我尝试切换到eAccelerator,但最终遇到了许多分段错误(错误的容忍度较低)。 eAccelerator的主要优点是它不仅是操作码缓存,还是优化器。 您应该对每个应用程序进行全面测试,以确保没有任何问题,然后我将使用apachebench在负载下对其进行测试。 |