PHP 预编译加速: eAccelerator的安装和性能比较

上次尝试安装Wikipedia的镜像的时候,了解到了eAccelerator已经是很常用的PHP平台预编译加速的手段了。今天在自己机器上尝试安装了一下,备忘如下:

获得源代码:
http://bart.eaccelerator.net/source/
编译:需要有autoconf支持,解包后在源程序目录下:


/usr/local/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=/usr/local/bin/php-config
make
sudo make install

配置增加如下:sudo vi /usr/local/lib/php.ini
extension_dir = "/usr/local/lib/php/extensions"
extension="/no-debug-non-zts-20060613/eaccelerator.so"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

2006-06-03更新
在apache 2.2的升级过程中:发现php的相关模块都需要重新编译 需要注意包含哪个目录下的 eaccelerator.so 文件
/usr/local/lib/php/extensions$ ls -1
no-debug-non-zts-20020429
no-debug-zts-20020429
否则eAccelerator会无法生效, 我测试的结果在apache 2.2下eAccelerator的效果比apache 1.3下还差一些;

最好创建专用的缓存目录:


sudo mkdir /tmp/eaccelerator
sudo chmod 0777 /tmp/eaccelerator


重启一下apache:
sudo /home/apache/bin/apachectl restart
通过phpinfo()已经可以看到:eAccelerator启用了
[chedong@chedong eaccelerator-0.9.5.3]$ php -v
PHP 5.2.8 (cli) (built: Jan 14 2009 02:44:39)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
with eAccelerator v0.9.5.3, Copyright (c) 2004-2006 eAccelerator, by eAccelerator

用phpinfo这个脚本本身还做了一下性能对比测试:对于纯php代码(不考虑数据库瓶颈/文件IO等操作)的运行效率的确有3-5倍的效率提升;

测试:
/home/apache/bin/ab -c 20 -n1000 http://www.chedong.com/phpMan.php/phpinfo

eAccelerator 启用                                             |eAccelerator 关闭
Document Length:        32006 bytes                           |Document Length:        29136 bytes
Concurrency Level:      20                                    |Concurrency Level:      20
Time taken for tests:   5.813 seconds                         |Time taken for tests:   23.896 seconds
Complete requests:      1000                                  |Complete requests:      1000
Failed requests:        89                                    |Failed requests:        109
   (Connect: 0, Length: 89, Exceptions: 0)                    |   (Connect: 0, Length: 109, Exceptions: 0)
Broken pipe errors:     0                                     |Broken pipe errors:     0
Total transferred:      32534962 bytes                        |Total transferred:      29578714 bytes
HTML transferred:       32263316 bytes                        |HTML transferred:       29308693 bytes
Requests per second:    172.03 [#/sec] (mean)                 |Requests per second:    41.85 [#/sec] (mean)
Time per request:       116.26 [ms] (mean)                    |Time per request:       477.92 [ms] (mean)
Time per request:       5.81 [ms]                             |Time per request:       23.90 [ms]
Transfer rate:          5596.93 [Kbytes/sec] received         |Transfer rate:          1237.81 [Kbytes/sec] received
                                                              |
Connnection Times (ms)                                        |Connnection Times (ms)
              min  mean[+/-sd] median   max                   |              min  mean[+/-sd] median   max
Connect:        0    19   12.1     17    72                   |Connect:        0    91   58.9     89   424
Processing:    53    92   22.0     90   219                   |Processing:   140   379  209.6    366  4078
Waiting:       39    89   21.9     88   218                   |Waiting:      113   359  210.6    349  4076
Total:         53   111   16.4    109   251                   |Total:        140   470  203.7    450  4321
                                                              |
Percentage of the requests served within a certain time (ms)  |Percentage of the requests served within a certain time (ms)
  50%    109                                                  |  50%    450
  66%    110                                                  |  66%    453
  75%    111                                                  |  75%    456
  80%    116                                                  |  80%    460
  90%    130                                                  |  90%    490
  95%    145                                                  |  95%    626
  98%    158                                                  |  98%    830
  99%    167                                                  |  99%    831
 100%    251 (last request)                                   | 100%   4321 (last request)
2006-08-21
用yum安装autoconf时候出警告:


warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID db42a60e
Public key for autoconf-2.59-5.noarch.rpm is not installed
Retrieving GPG key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
GPG key at file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora (0x4F2A6FD2) is already installed

The GPG keys listed for the "Fedora Core 4 - i386 - Base" repository are already installed but they are not correct for this package.
Check that the correct key URLs are configured for this repository.

按照Dan的回复:修复一下 rpm --import /usr/share/rhn/RPM-GPG-KEY 然后再安装就可以了。
2006-11-03 升级PHP后,eAccelerator需要重新编译,并且设置扩展的公共根路径:
; Directory in which the loadable extensions (modules) reside.
extension_dir = "/usr/local/lib/php/extensions"
extension="/no-debug-non-zts-20060613/eaccelerator.so"

否则会出现错误:


PHP Warning: Unknown(): Unable to load dynamic library './/usr/local/lib/php/extensions/no-debug-non-zts-20020429/eaccelerator.so' - .//usr/local/lib/php/extensions/no-debug-non-zts-20020429/eaccelerator.so: cannot open shared object file: No such file or directory in Unknown on line 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

e421083458

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值