给PHP加速,配置和确认eAccelerator使用效率
来源:互联网 发布:彩超单子上的数据表示 编辑:程序博客网 时间:2024/05/16 08:47
注本网转载某位大侠的 具体的给忘 了 贴出来共享下
一、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.0 0 20
Processing: 13 79 8.2 80 104
Waiting: 7 76 11.1 79 100
Total: 20 80 7.5 80 104
Percentage of therequests served within a certain time (ms)
二、安装eaccelerator 的测试数据
ab -c 100 -n 10000 http://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.6 0 8
- 给PHP加速,配置和确认eAccelerator使用效率
- 给PHP加速,eAccelerator配置和使用指南
- 给PHP加速,eAccelerator配置和使用指南
- 给PHP加速,eAccelerator配置和使用指南
- 给PHP加速,eAccelerator配置和使用指南
- 使用 eAccelerator加速PHP代码
- Eaccelerator:加速PHP程序
- 安装eaccelerator加速PHP
- 安装及配置eaccelerator-0.9.5加速PHP-5.2.1
- 在Windows环境下编译、配置eAccelerator加速PHP
- 安装及配置eaccelerator加速PHP-5.2.1
- 安装及配置eaccelerator-0.9.5加速PHP-5.2.1
- 关于PHP加速eAccelerator、APC和Zend Optimizer
- PHP 预编译加速: eAccelerator的安装和性能比较
- PHP 预编译加速: eAccelerator的安装和性能比较
- 关于PHP加速eAccelerator、APC和Zend Optimizer
- PHP中使用eAccelerator
- 用eAccelerator(前身Truck MMCache)加速PHP
- Vmware上Centos5.5 安装本地镜像yum
- 一人立志万夫莫敌
- yii-You are not allowed to access this page
- GFS文件系统研究
- ffmpeg ffmpeg-php 安装及出错解决办法()
- 给PHP加速,配置和确认eAccelerator使用效率
- 给内核打补丁
- rhel5.5(linux)LAMP 源码安装(修正)
- 今年到现在的上海最热的一天
- 安装GD库错误解决方法 configure.ac:64: error: possibly undefined macro: AM_ICONV
- install MySQLdb for python
- 浏览器引擎
- 第10章 CALL和RET指令 笔记
- 程序员笑话