`
csstome
  • 浏览: 1476084 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

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

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

cd eaccelerator-0.9.6/

export PHP_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 Zend extension 模式

用语句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 就会看到

PHP 5.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-2010 Zend 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

Concurrency Level: 100

Time taken for tests: 43.394 seconds

Complete requests: 10000

Failed requests: 0

Write errors: 0

Total transferred: 476070979 bytes

HTML transferred: 474650695 bytes

Requests per second: 230.44 [#/sec] (mean)

Time per request: 433.945 [ms] (mean)

Time per request: 4.339 [ms] (mean, across all concurrent requests)

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

Document Path: /index.php

Document Length: 39630 bytes

Concurrency Level: 100

Time taken for tests: 8.031 seconds

Complete requests: 10000

Failed requests: 0

Write errors: 0

Total transferred: 397744576 bytes

HTML transferred: 396324434 bytes

Requests per second: 1245.19 [#/sec] (mean)

Time per request: 80.309 [ms] (mean)

Time per request: 0.803 [ms] (mean, across all concurrent requests)

Transfer rate: 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 the requests served within a certain time (ms)

二、安装eaccelerator 的测试数据

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

Document Path: /index.php

Document Length: 42147 bytes

Concurrency Level: 100

Time taken for tests: 6.378 seconds

Complete requests: 10000

Failed requests: 0

Write errors: 0

Total transferred: 423038785 bytes

HTML transferred: 421618217 bytes

Requests per second: 1567.89 [#/sec] (mean)

Time per request: 63.780 [ms] (mean)

Time per request: 0.638 [ms] (mean, across all concurrent requests)

Transfer rate: 64773.36 [Kbytes/sec] received

Connection Times (ms)

min mean[+/-sd] median max

Connect: 0 0 0.6 0 8

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics