- 浏览: 796729 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
aliang032:
文章很赞,有几个缺点:1、是你的服务端是单进程的,如果进程挂了 ...
php socket编程实例详解 -
最佳蜗牛:
最佳蜗牛 写道是不是缺少了一个toolbar.Realize( ...
wxPython写的简易编辑器(原创) -
最佳蜗牛:
是不是缺少了一个toolbar.Realize()?
wxPython写的简易编辑器(原创) -
最佳蜗牛:
2.7.3版本里不能显示工具栏的图标
wxPython写的简易编辑器(原创) -
sogo6:
我怎么安装的也不行? 裸奔啊。。。。。
让TextMate支持中文显示
一直想找一些关于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环境):
详细过程见:http://purpen.iteye.com/blog/774790
然后我们再编辑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,这两款潜力还是很大的。
发表评论
-
基于libmemcached,php扩展memcached的安装
2011-03-29 18:23 1655一,为什么要装memcached扩展 memcached ... -
OpenCV和PHP的人脸识别技术
2011-03-15 00:52 4065OpenCV安装之前必须依赖的包:(请先安装好) pkgco ... -
php代码安全:增加这三行php代码的安全,性能和兼容性
2010-10-09 16:42 1320如何改进以下的这行php代码: <? echo(&q ... -
PHP代码安全:register_globals的设置off
2010-10-09 16:29 1432在PHP编码的时候,要考虑到很多安全问题,不然将可能被攻击。下 ... -
PHP APC 配置详解
2010-09-29 10:16 6545APC是Alternative PHP Cache的简称,是 ... -
安装PHP的Parsekit扩展
2010-09-29 09:54 1319安装PHP的Parsekit扩展 从http://pecl. ... -
PHP算法:折半查找法(又称二分查找法)
2010-09-26 13:12 2362二分查找又称折半查找 ,它是一种效率较高的查找方法。 ... -
PHP算法:直接插入排序
2010-09-26 12:56 1370直接插入排序(Straight Insertion Sort) ... -
PHP算法:冒泡排序与快速排序
2010-09-26 12:41 1902写一个排序算法,可以是冒泡排序或者快速排序,假设待排序对象是一 ... -
[转]PHP的错误报告error_reporting
2010-09-25 11:41 1583error_reporting 设定 ... -
PHP正则表达式:将1234567890转换成1,234,567,890 每3位用逗号隔开的形式
2010-09-25 10:52 1713“四项处理”的作用是与字符相匹配,然后根据是否能找到要匹配的字 ... -
PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
2010-09-25 10:19 4723PHP函数篇详解十进制、二进制、八进制和十六进制互相转 ... -
php socket通信的基础知识
2010-09-25 09:03 7481迷人而又让人容易糊涂的套接字(Sockets)。Sockets ... -
posix和perl标准的正则表达式区别
2010-09-25 08:29 5573正则表达式(Regular Expre ... -
php socket编程实例详解
2010-09-24 23:10 12633让我们以一个基本的例子开始---一个接收输入字符串,处理并返回 ... -
PHP SPL,遗落的宝石
2010-09-24 22:23 1215英文原文:http://www.rafae ... -
PHPER进阶必备知识:详解SQL性能优化十条经验
2010-09-17 22:02 8591.查询的模糊匹配 尽量避免在一个复杂查询里面使用 LIKE ... -
mysql_fetch_array与mysql_fetch_row有什么区别?
2010-09-17 21:54 4055两种查询函数array / row区别 格式:mysql ... -
php 排序函数 sort、rsort、asort、arsort、ksort、krsort的区别
2010-09-17 18:43 34691,快速创建数组的函数range() 比如range()函数 ... -
在smarty模板文件当中,直接使用PHP代码
2010-09-11 23:19 1831smarty允许在模板中直接嵌入 php 脚本. 是否处理这些 ...
相关推荐
本文将对五种常见的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更偏向于数据库缓存扩展,它们...
11. **与其他加速器的比较**:XCache与APC(Alternative PHP Cache)、eAccelerator等其他PHP加速器相比,各有优缺点。选择哪种取决于具体需求,如性能、内存使用、稳定性以及社区支持等。 总的来说,XCache是提升...
值得注意的是,eAccelerator与PHP的其他扩展可能存在兼容性问题,特别是与其他缓存扩展(如APC、XCache)同时使用时。因此,使用前应确保eAccelerator是最佳选择,并做好与其他扩展的冲突排查。 此外,尽管...
eAccelerator 与同类的 PHP 加速器如 APC (Alternative PHP Cache) 和 XCache 相比,各有优势。例如,APC 提供了更多的内存管理选项,而 XCache 更加轻量级。选择哪款加速器取决于特定项目的需求和服务器环境。 ...
3. `php_xcache.dll`:PHP扩展模块,负责与PHP解释器交互。 4. `Release_TS`:这可能是一个目录,包含了不同线程安全(TS)版本的XCache模块,"TS"代表Thread Safety,表明这些模块支持多线程环境。 安装XCache时,...
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社区维护...
- PHP缓存器:使用如eAccelerator、APC、XCache、Redis和Memcached等工具进行数据缓存。 七、数据库缓存 数据库自身也提供了缓存机制,如MySQL查询缓存,可以缓存SQL查询结果,加快数据库层的响应。 八、基于反向...
操作码缓存是一种优化手段,如eAccelerator、XCache、APC等。它们存储编译后的PHP操作码,下次请求时直接使用,避免了重复编译过程,降低了CPU和内存消耗。选择缓存器时,根据社区活跃度和性能测试,XCache通常被...
Xcache与eAccelerator类似,也是一种PHP加速器扩展。它主要通过将编译后的PHP代码缓存到共享内存中,从而避免了重复编译的过程。这使得应用程序能够以更快的速度运行,有效提高页面生成速率2到5倍,并降低服务器负载...
在生产环境中,使用PHP加速器如APC、XCache或eAccelerator可以显著提高PHP的运行速度,甚至可能使性能提升50%。此外,关闭调试工具如Xdebug或APD也是必要的,它们在开发阶段很有用,但在生产环境中可能会成为性能...
在PHP中有多个类似的缓存扩展,如eAccelerator、memcached、APC等。它们各有特点,但XCache因其优秀的性能和广泛的兼容性而受到青睐。例如,XCache支持线程安全环境,并且适用于多种PHP版本,包括PHP 4和PHP 5系列。...
常见的PHP opcode缓存器包括APC、eAccelerator和XCache等。 ##### 2.4 APC示例 APC(Alternative PHP Cache)是一款高效的opcode缓存器,它可以显著提高PHP脚本的执行效率。在配置文件php.ini中开启APC的opcode...
16. **Web架构与安全**:如使用Xdebug调试,APC、eAccelerator、Xcache和Zend Optimizer用于PHP加速,mod_rewrite用于URL重写。 17. **MySQL优化**:索引、查询优化、分区表、读写分离等策略。 18. **排序算法**:...