`

三款免费的PHP加速器:APC、eAccelerator、XCache比较

    博客分类:
  • PHP
阅读更多

本文转载自:http://killker.com/blog/?p=94

一直想找一些关于PHP加速的文章,偶然看到杀客的这篇文章,感觉不错,分享给大家,再此感谢杀客。

一、PHP加速器介绍

 PHP加速器是一个为了提高PHP执行效率,从而缓存起PHP的操作码,这样PHP后面执行就不用解析转换了,可以直接调用PHP操作码,这样速度上就提高了不少。

Apache中使用mod_php的请求、响应执行流程:

1、Apache接收请求。
2、Apache传递请求给mod_php。
3、mod_php定位磁盘文件,并加载到内存中。
4、mod_php编译源代码成为opcode树。
5、mod_php执行opcode树。

       PHP加速器相应的就是第四步,它的目的就是防止PHP每次请求都重复编译PHP代码,因为在高访问量的网站上,大量的编译往往没有执行速度快呢?所以这里面有个瓶颈就是PHP的重复编译既影响了速度又加载了服务器负载,为了解决此问题,PHP加速器就这样诞生了。

二、PHP加速器安装与配置

        1、安装配置APC

APC全称是Alternative PHP Cache,官方翻译叫”可选PHP缓存”,它是PHP PECL中的一个扩展,好像是facebook在使用它,下面开始安装(ubuntu环境): 
$wget http://pecl.php.net/get/APC-3.0.19.tgz
$tar xvzf APC-3.0.19.tgz
$cd APC-3.0.19/APC-3.0.19
$/usr/local/php/bin/phpize
$./configure –enable-apc –enable-apc-mmap –with-php-config=/usr/local/php/bin/php-config
$make
$sudo make install

下面我们再配置APC,因为我的PECL扩展路径改变了,所以我得移动下编译好的文件:
$sudo mv /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/apc.so /usr/local/php/lib/php/extensions/PECL

然后我们再编辑php.ini文件进行配置,请把下面的代码加入到php.ini中即可:
extension_dir = "/usr/local/php/lib/php/extensions/PECL"
extension = apc.so
; APC
apc.enabled = 1
apc.shm_segments = 1
apc.shm_size = 64
apc.optimization = 1
apc.num_files_hint = 0
apc.ttl = 0
apc.gc_ttl = 3600
apc.cache_by_default = on

     这样重启apache就会在phpinfo()信息中显示。

       2、安装配置eAccelerator

eAccelerator的前身其实是truck-mmcache,因为开发truk-mmcache的人被Zend给招安了,所以开发eAccelerator的人继承了truk-mmcache的一些特性,设计出eAccelerator加速器。安装如下:
$wget http://jaist.dl.sourceforge.net/sourceforge/eaccelerator/eaccelerator-0.9.5.tar.bz2
$tar -jxf eaccelerator-0.9.5.tar.bz2
$cd eaccelerator-0.9.5
$/usr/local/php/bin/phpize
$./configure –enable-eaccelerator=shared –with-php-config=/usr/local/php/bin/php-config
$make
$sudo make install
$sudo mv /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so /usr/local/php/lib/php/extensions/PECL

将下面代码加入php.ini文件中
extension = eaccelerator.so
; eAccelerator
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.prune_period = "0"
eaccelerator.shm_only = "0"
eaccelerator.compress = "1"
eaccelerator.compress_level = "9"

创建缓存目录,重启apache

$sudo mkdir /tmp/eaccelerator
$sudo chmod 777 /tmp/eaccelerator
$sudo /usr/local/apache/apachectl restart

在phpinfo()检查是否安装成功.

3、安装配置XCache

XCache作为国人自己开发的东西,做小菜鸟的我也感到骄傲,而且XCache无论在速度还是性能上都做的不错。下面就赶紧让我们品尝它吧!

$wget http://xcache.lighttpd.net/pub/Releases/1.2.2/xcache-1.2.2.tar.gz
$tar xvzf xcache-1.2.2.tar.gz
$cd xcache-1.2.2
$/usr/local/php/bin/phpize
$./configure –enable-xcache –enable-xcache-coverager –with-php-config=/usr/local/php/php-config
$make
$sudo make install
$sudo mv /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/xcache.so /usr/local/php/lib/php/extensions/PECL

在php.ini添加配置信息:

extension = xcache.so
; xcache
xcache.admin.user = "admin"
xcache.admin.pass = "(执行) echo ’(你的密码)’|md5sum(得出的密文)"
;
xcache.size = 24M
xcache.shm_scheme = "mmap"
xcache.count = 2
xcache.slots = 8k
xcache.ttl = 0
xcache.gc_interval = 0

xcache.var_size = 8M
xcache.var_count = 1
xcache.var_slots = 8k
xcache.var_ttl = 0
xcache.var_maxttl = 0
xcache.var_gc_interval = 300
xcache.test = Off
xcache.readonly_protection = On
xcache.mmap_path = "/tmp/xcache"
xcache.coredump_directory = ""
xcache.cacher = On
xcache.stat = On
xcache.optimizer = Off
;
xcache.coverager = On
xcache.coveragedump_directory = ""

创建缓存目录,重启apache

$sudo mkdir /tmp/xcache
$sudo chmod 777 /tmp/xcache
$sudo /usr/local/apache/bin/apachectl restart

去查看phpinfo()信息吧!

三、PHP加速器测试

1、测试环境

硬件: AMD Athlon 64 X2 Dual Core Processor 4400+ @ 2.2GHz CPU, 2GB 内存. 160GB SATA 硬盘

软件: Linux Ubuntu server Gutsy 7.10, Apache 2.2.4, MySQL 5.0.45 和 PHP 5.2.3

测试指令: ab -c5 -n3000 http://example.com/ (我们使用的是Apache Benchmark (ab) 工具,并发连接为5,3000次请求)

2、测试结果

无任何加速器:

Document Path: /
Document Length: 21757 bytes
Concurrency Level: 5
Time taken for tests: 288.255212 seconds
Complete requests: 3000
Failed requests: 0
Write errors: 0
Total transferred: 66777000 bytes
HTML transferred: 65271000 bytes
Requests per second: 10.41 [#/sec] (mean)
Time per request: 480.425 [ms] (mean)
Time per request: 96.085 [ms] (mean, across all concurrent requests)
Transfer rate: 226.23 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.5 0 19
Processing: 181 479 186.0 444 1822
Waiting: 166 461 184.7 427 1708
Total: 181 479 186.0 444 1822
Percentage of the requests served within a certain time (ms)
50% 444
66% 525
75% 577
80% 619
90% 732
95% 819
98% 946
99% 1012
100% 1822 (longest request)

APC加速器:

Document Path: /
Document Length: 21757 bytes
Concurrency Level: 5
Time taken for tests: 98.530068 seconds
Complete requests: 3000
Failed requests: 0
Write errors: 0
Total transferred: 66777000 bytes
HTML transferred: 65271000 bytes
Requests per second: 30.45 [#/sec] (mean)
Time per request: 164.217 [ms] (mean)
Time per request: 32.843 [ms] (mean, across all concurrent requests)
Transfer rate: 661.84 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 2
Processing: 58 163 71.2 155 2452
Waiting: 53 158 69.6 150 2329
Total: 58 163 71.2 155 2452
Percentage of the requests served within a certain time (ms)
50% 155
66% 178
75% 193
80% 204
90% 235
95% 258
98% 285
99% 302
100% 2452 (longest request)

eAccelerator加速器:

Document Path: /
Document Length: 21757 bytes
Concurrency Level: 5
Time taken for tests: 95.983986 seconds
Complete requests: 3000
Failed requests: 0
Write errors: 0
Total transferred: 66777000 bytes
HTML transferred: 65271000 bytes
Requests per second: 31.26 [#/sec] (mean)
Time per request: 159.973 [ms] (mean)
Time per request: 31.995 [ms] (mean, across all concurrent requests)
Transfer rate: 679.39 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 3
Processing: 57 159 91.3 148 3830
Waiting: 50 152 89.8 142 3704
Total: 57 159 91.3 148 3830
Percentage of the requests served within a certain time (ms)
50% 148
66% 174
75% 193
80% 205
90% 239
95% 263
98% 289
99% 309
100% 3830 (longest request)

XCache加速器:

Document Path: /
Document Length: 21757 bytes
Concurrency Level: 5
Time taken for tests: 99.76300 seconds
Complete requests: 3000
Failed requests: 0
Write errors: 0
Total transferred: 66777000 bytes
HTML transferred: 65271000 bytes
Requests per second: 30.28 [#/sec] (mean)
Time per request: 165.127 [ms] (mean)
Time per request: 33.025 [ms] (mean, across all concurrent requests)
Transfer rate: 658.19 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 2
Processing: 59 164 83.4 155 3367
Waiting: 52 156 66.4 148 1802
Total: 59 164 83.4 155 3367
Percentage of the requests served within a certain time (ms)
50% 155
66% 178
75% 196
80% 206
90% 237
95% 263
98% 287
99% 305
100% 3367 (longest request)

3、结果摘要

请求时间(秒) 单次请求时间(毫秒) 最大内存占用(MB) 最小内存占用(MB)
None 10.41 96.08 24 24
APC 30.45 32.84 21 21
eAccelerator 31.26 31.99 23 18
XCache 30.28 33.02 29 19

四、PHP加速器比较结果总结

     1、通过测试得出eAccelerator在请求时间和内存占用综合方面是最好的。

     2、通过测试得出使用加速器比无加速器在请求时间快了3倍左右。

     3、通过各个官方观察,XCache是更新最快的,这也说明最有发展的。

        以上是总结结果,你也许会问我到底用那个加速器好呢?我只能告诉你,首先,用一定比不用好,其次每个加速器还有一些可以调优的参数,所以要根据你的系统环境而定,然后,我个人觉得你可以详细研究下eAccelerator和XCache,这两款潜力还是很大的,最后我从比较专业的测试网站搞了一张结果图:

cache

 

分享到:
评论

相关推荐

    Memcache-eAccelerator-APC-Xcache-Redis 五种php缓存加速器特点浅析.docx

    本文将对五种常见的PHP缓存加速器进行分析,包括Memcached、eAccelerator、APC(Alternative PHP Cache)、Xcache以及Redis,以帮助理解它们的特点和适用场景。 首先,Memcached是一个分布式内存对象缓存系统,常...

    php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析

    主要介绍了php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法,结合实例形式分析了php加速缓存器opcache,apc,xcache,eAccelerator的基本功能、原理及扩展配置相关操作技巧,需要的朋友可以参考下

    PHP中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC )

    Xcache与eAccelerator在功能上十分相似,都是PHP加速器扩展。 综上所述,eAccelerator和Xcache属于PHP层面的加速扩展,主要功能是提高PHP代码的执行效率和缓存性能;而memcached和APC更偏向于数据库缓存扩展,它们...

    php-pecl-5.4.16-Win32-VC9-x86_eaccelerator

    eAccelerator是一款开源的PHP加速器、优化器和缓存工具,它通过编译PHP脚本并存储在内存中来减少CPU使用率和磁盘I/O操作,从而显著提高PHP应用的运行速度和响应时间。在Windows环境下,我们需要下载与PHP版本相匹配...

    eAccelerator0951_5.2.3

    eAccelerator 与同类的 PHP 加速器如 APC (Alternative PHP Cache) 和 XCache 相比,各有优势。例如,APC 提供了更多的内存管理选项,而 XCache 更加轻量级。选择哪款加速器取决于特定项目的需求和服务器环境。 ...

    XCache-3.2.0-php-5.3.29-Win32-VC9-x64.zip

    11. **与其他加速器的比较**:XCache与APC(Alternative PHP Cache)、eAccelerator等其他PHP加速器相比,各有优缺点。选择哪种取决于具体需求,如性能、内存使用、稳定性以及社区支持等。 总的来说,XCache是提升...

    XCache-3.0.4-php-5.4.20-Win32-VC9-x86.zip

    XCache是一款高效的PHP缓存器,它为PHP解释器提供了优化和加速功能。这款软件的主要目的是减少PHP脚本解析和编译的时间,从而提升网站的性能。XCache 3.0.4是针对PHP 5.4.20版本的一个特定构建,适用于Windows 32位...

    PHP服务缓存加速优化实战.docx

    PHP 缓存加速器软件种类有很多,常见的有 XCache、eAccelerator、APC (Alternative PHP Cache)、ZendOpcache 等。在企业环境中我们要如何选择 PHP 缓存加速器软件呢?事实上,任选其一即可,没必要都安装上,都安装...

    php基础学习

    6. **加速器**:如eAccelerator、xcache和APC等,它们优化PHP性能,通过缓存编译后的PHP代码,减少CPU资源消耗,提升网站响应速度。 7. **PEAR**:PEAR是PHP的扩展和应用程序仓库,提供了一系列已封装好的PHP类库,...

    php面试题库

    - PHP缓存技术:了解APC、eAccelerator、XCache等PHP加速器,以及OPcache的使用。 - MVC模式:在PHP中实现模型-视图-控制器架构,提高代码组织和可维护性。 5. PHP安全: - 输入验证:使用过滤函数或正则表达式...

    win2003+IIS下安装Xcache加速的配置方法分享

    1. PHP加速工具的选择:文章作者提到论坛支持Memcache、eAccelerator、AlternativePHP Cache(APC)、Xcache等四种PHP优化方式。每种加速工具有各自的特点,如Memcache擅长分布式缓存,而Xcache则是一个由PHP社区维护...

    LAMP与LNMP优化与缓存加速

    操作码缓存是一种优化手段,如eAccelerator、XCache、APC等。它们存储编译后的PHP操作码,下次请求时直接使用,避免了重复编译过程,降低了CPU和内存消耗。选择缓存器时,根据社区活跃度和性能测试,XCache通常被...

    web后台优化方案

    - PHP缓存器:使用如eAccelerator、APC、XCache、Redis和Memcached等工具进行数据缓存。 七、数据库缓存 数据库自身也提供了缓存机制,如MySQL查询缓存,可以缓存SQL查询结果,加快数据库层的响应。 八、基于反向...

    PHP中4个加速、缓存扩展的区别和选用建议

    Xcache与eAccelerator类似,也是一种PHP加速器扩展。它主要通过将编译后的PHP代码缓存到共享内存中,从而避免了重复编译的过程。这使得应用程序能够以更快的速度运行,有效提高页面生成速率2到5倍,并降低服务器负载...

    《构建高性能Web站点》节选 - 动态脚本加速 - 避免重复编译.pdf

    常见的PHP opcode缓存器包括APC、eAccelerator和XCache等。 ##### 2.4 APC示例 APC(Alternative PHP Cache)是一款高效的opcode缓存器,它可以显著提高PHP脚本的执行效率。在配置文件php.ini中开启APC的opcode...

    Centos PHP 扩展Xchche的安装教程

    在PHP中有多个类似的缓存扩展,如eAccelerator、memcached、APC等。它们各有特点,但XCache因其优秀的性能和广泛的兼容性而受到青睐。例如,XCache支持线程安全环境,并且适用于多种PHP版本,包括PHP 4和PHP 5系列。...

    第18章 性能1

    在生产环境中,使用PHP加速器如APC、XCache或eAccelerator可以显著提高PHP的运行速度,甚至可能使性能提升50%。此外,关闭调试工具如Xdebug或APD也是必要的,它们在开发阶段很有用,但在生产环境中可能会成为性能...

    一份招PHP高级工程师的面试题.pdf

    16. **Web架构与安全**:如使用Xdebug调试,APC、eAccelerator、Xcache和Zend Optimizer用于PHP加速,mod_rewrite用于URL重写。 17. **MySQL优化**:索引、查询优化、分区表、读写分离等策略。 18. **排序算法**:...

Global site tag (gtag.js) - Google Analytics