- 浏览: 213658 次
- 性别:
- 来自: 宇宙
文章分类
最新评论
-
naryCC:
虽然没有smarty那么方便,但是由于我们的环境太老不得不使用 ...
SmartTemplate -
victorwmh:
我们项目是Java项目,但数据源来自不同的地方,有些还是合作单 ...
和C++相对应Java的CheckSum -
cuisuqiang:
那你们到底是Java项目还是C++的项目?
和C++相对应Java的CheckSum -
david.org:
attempt to write a readonly dat ...
linux+apache+subversion版本控制 -
victorwmh:
wellee 写道兄弟,我怎么配置ZendDebugger老是 ...
Zend Debugger和Zend Optimizer配置(Windows)
一、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在使用它。在http://pecl.php.net/package/APC中包含了所有apc安装包,你可以根据自己的需求选择相应的版本。state包含stable和beta两种状态,下载安装包时请留意。
# tar zxvf APC-3.1.9.tgz
# cd APC-3.1.9
# /usr/local/php5/bin/phpize
# ./configure --enable-apc --enable-apc-mmap --with-php-config=/usr/local/php5/bin/php-config
# make && make install
# cp /usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/apc.so /usr/local/php5/lib/php/extensions/apc.so
注:#/usr/local/php5/bin/phpize用于生成安装configure文件。
在配置文件php.ini的文件末尾加入以下内容:
[apc] extension=apc.so apc.enabled = 1 apc.cache_by_default = on apc.shm_segments = 1 apc.shm_size = 128 M apc.ttl = 7200 apc.user_ttl = 7200 apc.num_files_hint = 1024 apc.write_lock = On apc.gc_ttl=3600 apc.ttl=0 apc.mmap_file_mask=/tmp/apc.XXXXXX
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/php5/bin/phpize
# ./configure -enable-eaccelerator=shared -with-php-config=/usr/local/php5/bin/php-config
# make && make install
# cp /usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so /usr/local/php5/lib/php/extensions/
创建缓存目录:
# mkdir /tmp/eaccelerator
# chmod 777 /tmp/eaccelerator
在配置文件php.ini的文件末尾加入以下内容:
[eAccelerator] extension = 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.prune_period = "0" eaccelerator.shm_only = "0" eaccelerator.compress = "1" eaccelerator.compress_level = "9"
3、安装配置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/php5/bin/phpize
# ./configure -enable-xcache -enable-xcache-coverager -with-php-config=/usr/local/php5/php-config
# make && make install
# cp /usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/xcache.so /usr/local/php5/lib/php/extensions/
创建缓存目录:
# mkdir /tmp/xcache
# chmod 777 /tmp/xcache
在配置文件php.ini的文件末尾加入以下内容:
[xcache] extension = xcache.so 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 = ""
三、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,这两款潜力还是很大的。
专业测试网站对比图:
本文内容来自:http://killker.com/blog/?p=94
发表评论
-
SmartTemplate
2012-12-22 12:59 1672基本方法 SmartTemplate:: ... -
PHP webservice
2012-04-02 10:08 0http://www.blueidea.com/tech/pr ... -
常用webservice地址
2012-04-02 08:36 1273天气预报Web Service,数据来源于中国气象局 En ... -
yum httpd php php-mysql
2012-02-20 11:10 1538对于CentOS服务器yum是一个非常好的工具,尤其是在32位 ... -
用PHP写的一个web升级脚本
2011-10-21 14:31 1200管理web项目一直是件很困难的事情,程序使用时间越长里面的sp ... -
Postfix替代sendmail发送邮件
2011-08-18 10:52 3630基础知识 MUA: Mail User Ag ... -
Wordpress插件开发
2011-08-11 15:33 1267wordpress能成为当今用户最多的blog程序,其强大的插 ... -
linux+cacti安装配置,监控主机性能
2011-07-21 15:21 2287一、Cacti概述 1、cacti是用php语言 ... -
PHP正则表达式
2011-07-01 18:14 1179一、概述 正则表达式是进行模式匹配和文本操纵的一种复杂而 ... -
PHP表单及验证
2011-06-30 17:49 2283一、概述 PHP在处理一个页面时,它都会检查URL和 ... -
PHP程序员如何突破成长瓶颈
2011-06-04 15:23 984转:http://www.builder.com.cn/201 ... -
PHP Session原理分析及使用
2011-06-02 16:49 6113之前在一个叫魔 ... -
国外主流PHP框架对比
2011-05-25 10:21 1174【转自】http://tech.it168.c ... -
用memcache.php监测Memcached的使用情况
2010-12-27 10:25 1381最新的memcache pecl中,新增了一个memcache ... -
Linux下安装Memcached及php的memcache扩展库
2010-12-26 18:34 2067Memcache是什么? Memcach ... -
【转】PHP 实现多服务器共享 SESSION 数据
2010-12-14 09:33 873一、问题起源 稍大一 ... -
Zend Debugger和Zend Optimizer配置(Windows)
2010-06-15 12:26 3231Zend Debugger和Zend Optimizer的单个 ... -
PHP常见问题
2010-05-21 07:59 9380、字符串与数字比较,非数字开头的字符串与0比较时返回真 ...
相关推荐
本文将对五种常见的PHP缓存加速器进行分析,包括Memcached、eAccelerator、APC(Alternative PHP Cache)、Xcache以及Redis,以帮助理解它们的特点和适用场景。 首先,Memcached是一个分布式内存对象缓存系统,常...
主要介绍了php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法,结合实例形式分析了php加速缓存器opcache,apc,xcache,eAccelerator的基本功能、原理及扩展配置相关操作技巧,需要的朋友可以参考下
Xcache与eAccelerator在功能上十分相似,都是PHP加速器扩展。 综上所述,eAccelerator和Xcache属于PHP层面的加速扩展,主要功能是提高PHP代码的执行效率和缓存性能;而memcached和APC更偏向于数据库缓存扩展,它们...
值得注意的是,eAccelerator与PHP的其他扩展可能存在兼容性问题,特别是与其他缓存扩展(如APC、XCache)同时使用时。因此,使用前应确保eAccelerator是最佳选择,并做好与其他扩展的冲突排查。 此外,尽管...
11. **与其他加速器的比较**:XCache与APC(Alternative PHP Cache)、eAccelerator等其他PHP加速器相比,各有优缺点。选择哪种取决于具体需求,如性能、内存使用、稳定性以及社区支持等。 总的来说,XCache是提升...
eAccelerator 与同类的 PHP 加速器如 APC (Alternative PHP Cache) 和 XCache 相比,各有优势。例如,APC 提供了更多的内存管理选项,而 XCache 更加轻量级。选择哪款加速器取决于特定项目的需求和服务器环境。 ...
PHP 缓存加速器软件种类有很多,常见的有 XCache、eAccelerator、APC (Alternative PHP Cache)、ZendOpcache 等。在企业环境中我们要如何选择 PHP 缓存加速器软件呢?事实上,任选其一即可,没必要都安装上,都安装...
XCache是一款高效的PHP缓存器,它为PHP解释器提供了优化和加速功能。这款软件的主要目的是减少PHP脚本解析和编译的时间,从而提升网站的性能。XCache 3.0.4是针对PHP 5.4.20版本的一个特定构建,适用于Windows 32位...
操作码缓存是一种优化手段,如eAccelerator、XCache、APC等。它们存储编译后的PHP操作码,下次请求时直接使用,避免了重复编译过程,降低了CPU和内存消耗。选择缓存器时,根据社区活跃度和性能测试,XCache通常被...
6. **加速器**:如eAccelerator、xcache和APC等,它们优化PHP性能,通过缓存编译后的PHP代码,减少CPU资源消耗,提升网站响应速度。 7. **PEAR**:PEAR是PHP的扩展和应用程序仓库,提供了一系列已封装好的PHP类库,...
1. PHP加速工具的选择:文章作者提到论坛支持Memcache、eAccelerator、AlternativePHP Cache(APC)、Xcache等四种PHP优化方式。每种加速工具有各自的特点,如Memcache擅长分布式缓存,而Xcache则是一个由PHP社区维护...
Xcache与eAccelerator类似,也是一种PHP加速器扩展。它主要通过将编译后的PHP代码缓存到共享内存中,从而避免了重复编译的过程。这使得应用程序能够以更快的速度运行,有效提高页面生成速率2到5倍,并降低服务器负载...
- PHP缓存技术:了解APC、eAccelerator、XCache等PHP加速器,以及OPcache的使用。 - MVC模式:在PHP中实现模型-视图-控制器架构,提高代码组织和可维护性。 5. PHP安全: - 输入验证:使用过滤函数或正则表达式...
opcode缓存器如APC(Alternative PHP Cache)、eAccelerator和XCache等,能够将编译后的opcode存储在共享内存中,以便后续请求可以直接使用,而无需重新编译源代码。这大大减少了CPU的使用和内存的消耗,从而提高了...
常见的PHP opcode缓存器包括APC、eAccelerator和XCache等。 ##### 2.4 APC示例 APC(Alternative PHP Cache)是一款高效的opcode缓存器,它可以显著提高PHP脚本的执行效率。在配置文件php.ini中开启APC的opcode...
2、php中eAccelerator、memcached、xcache、APC 4个加速、缓存扩展的区别 参考:https://www.jb51.net/article/88281.htm xcache 是一个又快又稳定的 PHP opcode 缓存器. 经过良好的测试并在大流量/高负载的生产机器...
- PHP缓存器:使用如eAccelerator、APC、XCache、Redis和Memcached等工具进行数据缓存。 七、数据库缓存 数据库自身也提供了缓存机制,如MySQL查询缓存,可以缓存SQL查询结果,加快数据库层的响应。 八、基于反向...