设为首页 收藏本站
查看: 1820|回复: 0

[经验分享] PHP加速器

[复制链接]

尚未签到

发表于 2015-9-3 06:48:06 | 显示全部楼层 |阅读模式
  转http://www.vpser.net/opt/apc-eaccelerator-xcache.html
  一、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,这两款潜力还是很大的,最后我从比较专业的测试网站搞了一张结果

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-108817-1-1.html 上篇帖子: 【转载】php-fpm的高CPU使用率排查方法 下篇帖子: PHP内存读写引擎
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表