设为首页 收藏本站
查看: 567|回复: 0

[经验分享] 【转】PHP加速插件eAccelerator和Zend Optimizer是什

[复制链接]
发表于 2017-4-7 09:00:20 | 显示全部楼层 |阅读模式
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是最好的。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-361279-1-1.html 上篇帖子: 32位Win7下安装与配置PHP环境(一) 下篇帖子: PHP中Push(推送)技术的探讨 (转载)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表