给PHP加速,配置和确认eAccelerator使用效率

来源:互联网 发布:彩超单子上的数据表示 编辑:程序博客网 时间:2024/05/16 08:47

注本网转载某位大侠的  具体的给忘 了  贴出来共享下

 

 

一、eAccelerator介绍

 我们知道,php是属于解释开型语言,他们编写的动态内容都需要解释器来运行,解释器会把代码进行语法分析,然后生成可直接运行的中间代码,这个中间代码被称为opcodeoperate  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 易管理,使用方便。

关于如何创建eacceleratorRPM包,请 参考这里

 

三、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

原创粉丝点击