教学之友,学习之友。

站长教学网

当前位置: 站长教学网 > 网站编程 > PHP教程 >

PHP加速插件eAccelerator和Zend Optimizer是什么,区别是?

时间:2012-10-22 10:17来源:未知 作者:ken 点击:

eaccelerator是一个开放源码的php应用程序加速器,它的作用是优化和动态内容缓存,可以提高php脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除。 它还有对脚本起优化作用,以加快其执行效率。使您的PHP程序代码执效率能提高1-10倍。换句话说,eAccelerator是一个 加速及缓存软件,可以加速php文件的读取和运行速度,并将一些mysql查询及php文件缓存起来减轻服务器的负担,从而达到对论坛的大幅度加速和负载能力的提高,这个软件我在大站上作过试验,效果非常显著。

拿我一个朋友的VPS来说,他的服务器环境是: FreeBSD 4.11 + Apache 2.0.59 + php 5.1.5 + Squid 2.5 ,在使用 eAccelerator 之前,他的VPS CPU占用经常在50%左右,而在使用 eAccelerator 后,CPU占用有所下降,在40%左右。后来他升级Squid 2.5到Squid 2.6后,CPU 下降到了20%左右。这是由于Squid 2.6在FreeBSD采用 Kqueue支持,所以对CPU消耗下降了。另外COSS的性能提高,对CPU消耗也有所改善,他经过上面的优化和升级后,CPU使用情况,维持在10-20%左右,后来他再仔细观察eAccelerator 的运行情况,发现内存使用是100%,只分配了16M内存来做缓存,只能缓存600个文件左右,于是他将内存设置为32M,运行10分钟后,内存使用100%,缓存了1000个文件左右,而对CPU占用也有所下降,现在CPU在6-10%左右。由此可见,如果有大内存,设置更多内存给 eAccelerator当作缓存区 ,对服务器的负载是很有利的。

下面再说说Zend Optimizer,Zend Optimizer则是通过优化代码的方式来提高php应用程序的执行速度,Zend Optimizer对那些在被最终执行之前由运行编译器(Run-Time Compiler)产生的代码进行优化。

通常情况下,执行使用Zend Optimizer优化后的php程序(PHP脚本)比没有使用Zend Optimizer的PHP代码要快40%到100%,这使得wordpress博客的博文可以更快的显示在博文阅读者面前,获得更好的浏览体验。更快的反应速度同时也意味着节省硬件的资源消耗,让服务器负载能力更强。

简而言之,Zend Optimizer可以让服务器更快的运行php程序,显著的降低服务器的CpU负载,并可以减少从访问者点击链接到服务器开始读取页面之间的时间,差不多40%-一半的时间消耗。

再来看看eAccelerator:

安装完这两个组件之后,我们需要对其进行优化,也就是参数的设置要进行优化。

打开 usr/local/php/etc/php.ini文件

在eAccelerator的参数区,eaccelerator.shm_size=”1″,改为eaccelerator.shm_size=”32″ ,也就是eAccelerator的缓存区大小

在Zend Optimizer的参数区,zend_optimizer.optimization_level=1,改成zend_optimizer.optimization_level=15

关于zend_optimizer.optimization_level参数芭士老师我在这里做一下说明:这个参数指定了Zend Optimizer优化程度,Zend Optimizer总共有10个优化过程,从理论上说开的越多性能越好。当然,理论和实际永远都存在着差距。因为优化过程开启的越多对服务器消耗也相对越大,Zend Optimizer的10个优化过程并不是相同的也就是说优化后的效果并不是平均的。

Zend公司定义的最高值(High模式)为15,这里15指的是开启1-4号优化过程。当然,有些朋友并不满足于此,毕竟最高也只开启4个优化过程连总数的一半都没有。各个优化过程的对应的数字代码(值)如下:
 优化过程1(PASS1) 1
 优化过程2(PASS2) 2
 优化过程3(PASS3) 4
 优化过程4(PASS4) 8
 优化过程5(PASS5) 16
 优化过程6(PASS6) 32
 优化过程7(PASS7) 64
 优化过程8(PASS8) 128
 优化过程9(PASS9) 256
 优化过程10(PASS10) 512

以何种方式开启优化过程是通过这些数字代码(值)相加所得的和作为此参数的参数值来控制的。例如我的配置文件中zend_optimizer.optimization_level = 1023 , 这里的1023是优化过程1到优化过程10全部数字代码(值)相加得到的和,表示开启全部10个优化过程。刚才所提到的Zend公司定义的High模式值为15,15表示同时开启优化过程1-4。

下面给出我做过的加速脚本的速度测试:
 环境:ubuntu server 10.04+nginx+mysql
 1、单独Zend Optimizer优化:
 测试结果很不稳定,偏差很大,加速并不多。
 2、单独eAccelerator(做为Zend扩展)优化:
 测试结果稳定,偏差小,加速也明显。
 3、eAccelerator和Zend Optimizer共存:
 测试结果稳定,偏差小,加速明显。比单独eAccelerator优化好。

 

另外,作为PHP 加速器而言,跟eAccelerator齐名的还有APC、XCache,相对效果eAccelerator是最好的。

(责任编辑:ken)
TAG标签: php eaccelerator Zend Optimiz
顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
注册登录:不允许匿名留言,登录后留言无需输入验证码。
栏目列表
最新内容