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

[经验分享] 给PHP加速,配置和确认eAccelerator使用效率

[复制链接]

尚未签到

发表于 2017-4-4 11:47:09 | 显示全部楼层 |阅读模式
  注本网转载某位大侠的 具体的给忘 了 贴出来共享下
一、eAccelerator介绍

我们知道,php是属于解释开型语言,他们编写的动态内容都需要解释器来运行,解释器会把代码进行语法分析,然后生成可直接运行的中间代码,这个中间代码被称为opcode(operate code),每一段php代码在运行的时候都有一个转换为opcode 的过程,如果一段代码要运行多次的话,opcode 也会生成多次

eAccelerator 是一个免费开源的PHP加速的软件,其原理是通过缓存PHP代码编译后的opcode到共享内存中,并在用户访问的时候直接调来提高PHP脚本的运行效 率,来起到高效的加速作用,对于不能缓存到共享内存中的文件和代码,eAccelerator还可以把他们缓存到系统磁盘上

通过使用eAccelerator,可以优化你的PHP代码执行速度,降低服务器负载。

更多了解看这里

二、eAccelerator安装

1、安装 可以直接看这里

wget http://bart.eaccelerator.net/source/0.9.6/eaccelerator-0.9.6.tar.bz2

tar jxvf/root/tools/eaccelerator-0.9.6.tar.bz2

cdeaccelerator-0.9.6/

exportPHP_PREFIX="/usr/local/php"

$PHP_PREFIX/bin/phpize

./configure--enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config

make&&make install

本人强列推荐把要用的软件打包成rpm 易管理,使用方便。

关于如何创建eaccelerator的RPM包,请 参考这里


三、eAccelerator配置

一、eAccelerator提供了两种配置和调用方式,分别为安装为

1、Zendextension 模式

用语句zend_extension=后面跟加eaccelerator.so的绝对路径,比如

zend_extension =/usr/local/php/lib/modules/eaccelerator.so

2、安装为 PHP extension 模式,

则用语句 extension=”eaccelerator.so”就可以 其它的配置一样

二、php 调用到eaccelerator.so 的方法也可以有两种

方法一,直接在php.ini 文件的任意位置里面添加和下面eaccelerator.ini一样的语句

方法二:编绎php时如果加了 –with-config-file-scan-dir=/etc/php.d (或其它目录)则 直接可以用vi eaccelerator.ini 。然后放入相应目录,其内容如下:

; Enable eAccelerator extension module

zend_extension =/usr/local/php/lib/modules/eaccelerator.so

; Options for the eAccelerator module

eaccelerator.shm_size = 0

eaccelerator.enable = 1

eaccelerator.optimizer = 1

eaccelerator.check_mtime = 1

eaccelerator.filter = ""

eaccelerator.shm_max = 0

eaccelerator.shm_ttl = 3600

eaccelerator.shm_prune_period = 0

eaccelerator.shm_only = 0

eaccelerator.compress = 1

eaccelerator.compress_level = 9

eaccelerator.keys = "shm_and_disk"

eaccelerator.sessions = "shm_and_disk"

eaccelerator.content = "shm_and_disk"

eaccelerator.debug = 9

eaccelerator.allowed_admin_path=/usr/local/apache2/htdocs/eaccelerator/

eaccelerator.cache_dir = "/tmp/eaccelerator"

eaccelerator.log_file = "/tmp/eaccelerator.log"

更多详细及语句解释可以直接看这里

三、完成安装配置后,我们最后要创建缓存目录

mkdir /tmp/eaccelerator

chmod 777 /tmp/eaccelerator

四、确认eaccelerator已配置成功

如果你的机器上有php命令,则直接用php -v 就会看到

PHP5.2.13 (cli) (built: Apr 21 2010 22:38:51)

Copyright (c) 1997-2010 The PHP Group

Zend Engine v2.2.0, Copyright (c) 1998-2010Zend Technologies

with eAccelerator v0.9.6, Copyright (c)2004-2010 eAccelerator, by eAccelerator

如果没有php 命令,则可以在写一个info.php的文件,内容为,在浏览器里打开你的info.php文件,也会看到eAccelerator相应的信息

以上两种办法都能帮你确认eAccelerator已正确配置

四、安装eAccelerator control panel (control.php)

把解开的eAccelerator的源码包里的control.php文件复制到你的WEB服务器中的一个目录下,使其它以通过http访问,如本例中http://10.20.0.199/eaccelerator/control.php 还记得在前面配置eaccelerator时有一个选项,这个选项的作用就是充许你通过control.php看到更多的相关信息和能控制eAccelerator。 eaccelerator.allowed_admin_path

要打开control.php文件,你需要输入默认的用户名”admin“和密码”eAccelerator” 这个用户名和密码可以在control.php文件里修改。

二、这个控制面板有两大主要功能

一:控制eAccelerator的功能如禁用或者启用eaccelerator的缓存和优化作用,删除缓存的内容等
二:是查看已经缓存过的文件

五、eAccelerator配置后效果测试

在开始之前我要先明一个服务器的并发处理问题,一般我们量化服务器的处理能力时会用到一个词吞吐率(throughput),单位是“reqs/s”这个词还用于描述如网络通讯数据量等,但这里只用于描述服务器的并发。

还需要了解一下ab 的使用如果之前不了解,可以看这里 ····

这里重点关注ab 报告里requests per second: 如下:

.... 截去 .....

Document Path: /index.php

Document Length: 47459 bytes


ConcurrencyLevel: 100

Time taken fortests: 43.394 seconds

Complete requests: 10000

Failed requests: 0

Write errors: 0

Totaltransferred: 476070979 bytes

HTMLtransferred: 474650695 bytes

Requests persecond: 230.44 [#/sec] (mean)

Time perrequest: 433.945 [ms] (mean)

Time perrequest: 4.339 [ms] (mean, across all concurrentrequests)

Transfer rate: 10713.65 [Kbytes/sec] received

.... 截去 .....

测试及取值方法,这里我们直接用index.php脚本.里面的内容为 ab 并发100 ,请求10000次来取得服务器的吞吐。然后对不安装和安装eaccelerator分别取下的服务器的吞吐的值进行对比。来确定 eaccelerator加速效用

注意:为了排除网络响应等其它的因素我建义ab命令的测试就在本机运行
为了数据的有效性,建议多次运行ab命令,然后取得一个比较平均的值

一、不安装eaccelerator 的测试数据

ab -c 100 -n 10000 http://10.20.0.199/index.php

DocumentPath: /index.php

Document Length:39630 bytes


ConcurrencyLevel: 100

Time taken fortests: 8.031 seconds

Completerequests: 10000

Failedrequests: 0

Writeerrors: 0

Totaltransferred: 397744576 bytes

HTMLtransferred: 396324434 bytes

Requests persecond: 1245.19 [#/sec] (mean)

Time perrequest: 80.309 [ms] (mean)

Time perrequest: 0.803 [ms] (mean, across allconcurrent requests)

Transferrate: 48366.09[Kbytes/sec] received


Connection Times (ms)

min mean[+/-sd] median max

Connect:0 1 2.00 20

Processing:13 79 8.280 104

Waiting:7 76 11.1 79100

Total:20 80 7.580 104


Percentage of therequests served within a certain time (ms)

二、安装eaccelerator 的测试数据

ab -c 100 -n 10000http://10.20.0.199/index.php

DocumentPath: /index.php

DocumentLength: 42147 bytes


ConcurrencyLevel: 100

Time taken fortests: 6.378 seconds

Completerequests: 10000

Failedrequests: 0

Writeerrors: 0

Totaltransferred: 423038785 bytes

HTMLtransferred: 421618217 bytes

Requests persecond: 1567.89 [#/sec] (mean)

Time perrequest: 63.780 [ms] (mean)

Time perrequest: 0.638 [ms] (mean, across allconcurrent requests)

Transferrate: 64773.36[Kbytes/sec] received


Connection Times (ms)

min mean[+/-sd] median max

Connect:0 0 0.60 8

运维网声明 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-360037-1-1.html 上篇帖子: 20个有用的 PHP + jQuery 组件和教程 下篇帖子: 构建集成java、php以及团队开发环境[window版]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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