- 浏览: 245697 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
nodonkey:
貌似还是不行,再等等吧,amfphp要出2.0了
amfphp1.9与php5.3.X版本不兼容 -
live711:
请问amfphp与php5.3.X搭配能用了吗?
amfphp1.9与php5.3.X版本不兼容 -
zhousheng193:
非常感谢!
安装flash player debug版本遇到的一些问题 -
sp42:
谢谢提示,我遇到的也是不能加密,用MAC地址代替之。
DI-624+A路由器韧体升级解决经常掉线的问题(转) -
心似海:
不错,要挖去了,哈哈
深入sql之merge into
本文转载自: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,这两款潜力还是很大的,最后我从比较专业的测试网站搞了一张结果图:
发表评论
-
nginx重启脚本 (平滑重启nginx)
2011-05-19 17:07 2450nginx重启脚本 (平滑重启nginx) ... -
Xcache 使用笔记
2011-02-22 18:32 1690转自:http://www.cnrui.cn/blog/art ... -
三大WEB服务器对比分析(apache ,lighttpd,nginx)
2011-02-22 17:47 2265本文转自:http://www.blogjava.ne ... -
amfphp1.9与php5.3.X版本不兼容
2011-02-18 13:58 3319damned,昨天花了一天时间 ... -
在PHP语言中使用JSON
2011-01-20 19:29 1117作者: 阮一峰 http://www.ruanyif ... -
[转载]50点提高PHP编程效率
2011-01-17 19:09 911这些总结很 实用,希 ... -
php could not find driver
2011-01-11 18:10 1970在调试一个PHP程序时,报了这个错误, could no ... -
linux下执行php文件发现Could not open input file
2010-11-04 13:51 2386在linux下通过svn更新了一个php文件,目的是想通过执行 ... -
Error: Commands out of sync; you can't run this command now
2010-10-06 15:43 2973Q: i m getting this bug.. and ... -
PHP call mysql stored procedure
2010-09-20 18:12 1281Before you installed the php_my ... -
学习 JpGraph心得以及一些常见问题解决
2010-09-13 00:28 13478安装JpGraph 的安装十分简便 :到 http: ... -
LAMP最小优化
2010-09-11 17:57 1097原文地址:http://www.blogk ... -
cURL使用心得(转)
2010-09-11 17:47 2857原文地址:http://www.blogkid.net/arc ... -
curl使用介绍2
2010-09-11 17:43 881原帖:http://www.uican.com.c ... -
PHP中CURL使用说明(转)
2010-09-11 17:13 1312转自:http://www.uican.com.c ... -
PHP内存溢出Allowed memory size of 解决办法
2010-08-03 18:21 9594以前追踪过这个问题,但是那个时候工具用的不太好,没看的这么 ... -
PHP自定义时间函数
2010-06-30 18:58 17691.php取本月本周或者下月下周的开始到结束时间 &l ... -
PHP Notice: Undefined index: ... 问题的解决方案
2009-12-30 19:05 6109首先,这个不是错误,是warning。所以如果服务器 ... -
php几个数组函数
2009-10-14 15:43 1451数组运用的熟练有时候能解决很多问题。熟悉相关函数就能事半功倍。 ... -
out of dynamic memory in yy_create_buffer() in Unknown on line 0
2009-09-28 09:22 0自己跑的机子上总会出现这个error: PHP Fatal ...
相关推荐
本文将对五种常见的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加速器、优化器和缓存工具,它通过编译PHP脚本并存储在内存中来减少CPU使用率和磁盘I/O操作,从而显著提高PHP应用的运行速度和响应时间。在Windows环境下,我们需要下载与PHP版本相匹配...
eAccelerator 与同类的 PHP 加速器如 APC (Alternative PHP Cache) 和 XCache 相比,各有优势。例如,APC 提供了更多的内存管理选项,而 XCache 更加轻量级。选择哪款加速器取决于特定项目的需求和服务器环境。 ...
11. **与其他加速器的比较**:XCache与APC(Alternative PHP Cache)、eAccelerator等其他PHP加速器相比,各有优缺点。选择哪种取决于具体需求,如性能、内存使用、稳定性以及社区支持等。 总的来说,XCache是提升...
XCache是一款高效的PHP缓存器,它为PHP解释器提供了优化和加速功能。这款软件的主要目的是减少PHP脚本解析和编译的时间,从而提升网站的性能。XCache 3.0.4是针对PHP 5.4.20版本的一个特定构建,适用于Windows 32位...
PHP 缓存加速器软件种类有很多,常见的有 XCache、eAccelerator、APC (Alternative PHP Cache)、ZendOpcache 等。在企业环境中我们要如何选择 PHP 缓存加速器软件呢?事实上,任选其一即可,没必要都安装上,都安装...
6. **加速器**:如eAccelerator、xcache和APC等,它们优化PHP性能,通过缓存编译后的PHP代码,减少CPU资源消耗,提升网站响应速度。 7. **PEAR**:PEAR是PHP的扩展和应用程序仓库,提供了一系列已封装好的PHP类库,...
- PHP缓存技术:了解APC、eAccelerator、XCache等PHP加速器,以及OPcache的使用。 - MVC模式:在PHP中实现模型-视图-控制器架构,提高代码组织和可维护性。 5. PHP安全: - 输入验证:使用过滤函数或正则表达式...
1. PHP加速工具的选择:文章作者提到论坛支持Memcache、eAccelerator、AlternativePHP Cache(APC)、Xcache等四种PHP优化方式。每种加速工具有各自的特点,如Memcache擅长分布式缓存,而Xcache则是一个由PHP社区维护...
操作码缓存是一种优化手段,如eAccelerator、XCache、APC等。它们存储编译后的PHP操作码,下次请求时直接使用,避免了重复编译过程,降低了CPU和内存消耗。选择缓存器时,根据社区活跃度和性能测试,XCache通常被...
- PHP缓存器:使用如eAccelerator、APC、XCache、Redis和Memcached等工具进行数据缓存。 七、数据库缓存 数据库自身也提供了缓存机制,如MySQL查询缓存,可以缓存SQL查询结果,加快数据库层的响应。 八、基于反向...
Xcache与eAccelerator类似,也是一种PHP加速器扩展。它主要通过将编译后的PHP代码缓存到共享内存中,从而避免了重复编译的过程。这使得应用程序能够以更快的速度运行,有效提高页面生成速率2到5倍,并降低服务器负载...
常见的PHP opcode缓存器包括APC、eAccelerator和XCache等。 ##### 2.4 APC示例 APC(Alternative PHP Cache)是一款高效的opcode缓存器,它可以显著提高PHP脚本的执行效率。在配置文件php.ini中开启APC的opcode...
在PHP中有多个类似的缓存扩展,如eAccelerator、memcached、APC等。它们各有特点,但XCache因其优秀的性能和广泛的兼容性而受到青睐。例如,XCache支持线程安全环境,并且适用于多种PHP版本,包括PHP 4和PHP 5系列。...
在生产环境中,使用PHP加速器如APC、XCache或eAccelerator可以显著提高PHP的运行速度,甚至可能使性能提升50%。此外,关闭调试工具如Xdebug或APD也是必要的,它们在开发阶段很有用,但在生产环境中可能会成为性能...
16. **Web架构与安全**:如使用Xdebug调试,APC、eAccelerator、Xcache和Zend Optimizer用于PHP加速,mod_rewrite用于URL重写。 17. **MySQL优化**:索引、查询优化、分区表、读写分离等策略。 18. **排序算法**:...