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

[经验分享] php优化(二)

[复制链接]

尚未签到

发表于 2018-12-16 08:28:24 | 显示全部楼层 |阅读模式
  

  配置xcache插件加速
  

  

1.xcache.ini参数说明

  xcache软件的解压目录xcache-3.2.0下存在一个名为xcache.ini的配置文件,即为xcache的配置文件。参数说明如下:
xcache配置文件参数解释说明
  [xcache-common]
  extension = xcache.so
加载xcache.so,路径相对于extension_dir的配置。自3.0版本开始不再使用zend_extension加载xcache的方式
  [xcache.admin]
  xcache.admin.enable_auth = On
激活管理员认证
  xcache.admin.user = “mOo”
  xcache.admin.pass = “md5 encrypted password”
执行xcache管理员用户名和密码,密码根据md5加密产生,留空表示禁止管理页面
[xcache]开始xcache缓存参数配置段,下面所有的初始值即为默认值,除非明确说明。
xcache.shm_scheme = “mmap”设置XCache如何从系统分配共享内存
xcache.size  =  60M0为禁止缓存,非0则启用缓存。需要注意系统所允许的mmap最大值
xcache.count =   1指定将cache切分成多少块,官方推荐设置为服务器cpu的数量**
grep-c processor /proc/cpuinfo
xcache.slots =  8K只是作为bash个数的参考值,缓冲超过这个个数的内容没有任何问题
xcache.ttl   =  0设置cache对象的生存期TTL(time to live)
0为永不过期
xcache.gc_interval =  0回收期扫描过期的对象回头内存空间的间隔,0为不扫描,其他值的单位是
xcache.var_size  =     4M
xcache.var_count =      1
xcache.var_slots =      8K
xcache.var_slots =      0
xcache.var_gc_interval =  300
这几个值和上面的几个类似,只不过用于变量缓存,而不是opcode缓存
xcache.readonly_protection = Off如果启用了该参数,将会略微降低性能,但会提高一定的安全系数,这个选项对于
xcache.mmap_path = /dev/zero 无效
xcache.mmap_path =  “/dev/zero”对于*nix,xcache.mmap_path是一个文件路径而非目录。如果要启用该参数 请使用“/tmp/xcache”这样的路径,而是“/dev/*”如果开启了xcache.readonly_protection参数,不同进程组的PHP将不会共享同一个/tmp/xcache路径
xcache.coredump_directory =  “”当XCache crash后,是否把数据保存到指定路径
xcache.disable_on_crash =   Off当xcache发生crash时,自动关闭xcache缓存
有关更多参数说明请看配置文件对应注释说明或参考官方文档:
http://xcache.lighttpd.net/wiki/XcacheIni

2.操作
因为xcache已经提供好配置文件我们追加到php.ini即可
[root@web02 xcache-3.2.0]# cat xcache.ini >>/application/php/lib/php.ini
3.检查XCache加速情况

[root@web02 ~]# /application/php/bin/php -vPHP 5.5.32 (cli) (built: May 24 2016 13:55:46) Copyright (c) 1997-2015 The PHP GroupZend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies    with XCache v3.2.0, Copyright (c) 2005-2014, by mOo    with XCache Cacher v3.2.0, Copyright (c) 2005-2014, by mOo提示:eAccelerator和xcache在php中只能有一个否则会出现error
修改完成后必须要重启PHP,否则不生效
phpinfo显示如下
DSC0000.jpg

4.配置Web界面查看XCache缓存加速信息

XCache支持Web界面管理,使用web界面生产md5地址如下:


http://xcache.lighttpd.net/demo/cacher/mkpassword.php 通过输入字符串生产Xcache管理员的密码,这里使用MD5sum生成明文密码。
[root@web02 xcache-3.2.0]# echo -n "123456"|md5sum e10adc3949ba59abbe56e057f20f883e  -修改配置php.ini,在xcache.admin标签段修改
[xcache.admin]xcache.admin.enable_auth = Onxcache.admin.user = "abcdocker"    #此处是用户名xcache.admin.pass = "e10adc3949ba59abbe56e057f20f883e"#此处是md5加密的密码路径提示:要求密码必须要使用md5加密然后复制xcache软件下面的缓存加速管理PHP程序到站点目录下:
[root@web02 xcache-3.2.0]# cp -a htdocs/ /application/nginx/html/blog/xadmin[root@web02 xcache-3.2.0]# chown -R www.www /application/nginx/html/blog/xadmin[root@web02 xcache-3.2.0]# pkill php-fpm[root@web02 xcache-3.2.0]# /application/php/sbin/php-fpm可以直接在浏览器上输入:域名/IP/xadmin 就可以访问
DSC0001.jpg

进入xcache界面
DSC0002.jpg
如果我们没有设置时区,会出现警告,解决方法如下


修改时区
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Chongqing
去掉注释,修改地址修改完需要重启
配置ZendOpcache参数
在php.ini的最后面加入下面几行:
[opcache]
zend_extension=/application/php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/opcache.so;
extension=opcache.so
opcache.memory_consumption=32   
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=1000  
opcache.revalidate_freq=60   
opcache.fast_shutdown=1
opcache.enable_cli=1opcache参数说明

opcache参数解释说明
opcache.memory_consumption=32Opcache共享内存空间大小,用于存放precompiled PHP code,默认为64,单位为Mbytes
opcache.interned_strings_buffer=8
默认值为4,interned strings内存的数量,单位是M
opcache.max_accelerated_files=1000
默认值是2000,Opcache哈希表的key的最大数量
opcache.revalidate_freq=60
默认值2,检查文件时间戳的频率,用于共享内存分配的变化。
opcache.fast_shutdown=1
默认值为0,如果激活,一个快速的关闭队列奖杯用来加速代码
opcache.enable_cli=1
默认值为0,激活PHP CLI的OPcache,用于测试和调试
更多参数说明:
[root@web02 zendopcache-7.0.5]# cd zendopcache-7.0.5
[root@web02 zendopcache-7.0.5]# less README再次提示:
ZendOPcache是PHP官方的新一代的缓存加速软件,php5.5以前可以用ZendOPcache软件以插件扩展的方式安装,从PHP5.5版本开始整合到PHP软件里,编译时只需要指定一个参数即可,例如:–enable-opcache
DSC0003.jpg
phpinfo显示如下信息
DSC0004.jpg

PHP指定MySQL的编译参数带来的问题
如果我们再编译的时候指定了–with-mysql=mysqlnd和–with-pdo-mysql=mysqlnd的参数进行编译,例如:
./configure \
--prefix=/application/php5.5.32 \
--with-mysql=/application/mysql/ \
--with-pdo-mysql=mysqlnd \
--with-iconv-dir=/usr/local/libiconv \
.....省略其他参数则再生产中可能会遇到socket连接问题,解决方法是在php.ini里添加如下命令
pdo_mysql.default_socker=/application/php5.5.32/tmp/mysql.sock生成环境PHP扩展插件的安装建议
1.PHP的安装插件表格列表
DSC0005.jpg

2.生成环境查看的安装建议
(1)对于功能性插件,如果业务产品不需要使用,可以暂时不考虑安装,例如:PDO_MYSQL\memcached\imagick等。如果不清楚是否需要,还是最好装上,有备无患。
(2)对于性能优化插件,eAccelerator、xcache、ZendOPcache、APC可以安装任一种,具体情况看业务需求,在选择时最好能搭建相关环境进程压力测试,然后根据实际测试结果来选择,用数据说话。


3.PHP加速插件的测试结果对比
DSC0006.jpg

针对PHP加速器比较结果进行总结
1.通过测试得出eAccelerator在请求时间和内存占用综合方面是最好的
2.通过测试得出使用加速器比无加速器的请求时间快了3倍左右
3.通过各个官方观察,Xcache是更新最快的,说明它是最有发展的。


那我们到底用哪个加速器呢?
首先,用一定比不用好,其次每个加速器还有一些可以优化的参数,所以要根据你的系统环境而定,此外,xcache和zendopcache这两款加速器的潜力还是很大的。
  





运维网声明 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-651862-1-1.html 上篇帖子: nginx服务器究竟是怎么执行php项目 下篇帖子: php优化(一)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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