ECOS百科全书|高级搜索|RSS订阅|加入收藏|服务中心|联系我们欢迎您光临!

B2B2C性能优化实战之二

来源:未知 发布时间:2018-07-26 12:51 字体:【   点击次

nba新闻 www.p5vjo.com.cn 在上一篇文章《ONex B2B2c性能优化实战之一》中我们解决了sphinx性能屏颈问题,把网站打开速度从9秒多提升到了4秒左右,但这还不够。这一篇文章,我们将继续深挖b2b2c性能屏颈,实现网站秒开。


解决了sphinx的问题,清风的运维小哥又继续分析慢日志,但在mysql慢日志中再无有价值的收获。于是转头分析系统本身使用的组件和机制(中间过程再省略一万字)。在观察缓存情况时,发现了如下现象:

6.jpg

ONex B2B2C使用了Redis做缓存系统,由上图可见,打开首页index.html时,首页模板挂件缓存都没有命中(value值都为空)?;捍娴淖饔?,是将已查询和访问过的资源临时存储起来,供下一次访问使用,以减少mysql和服务器压力,并可极大的提高访问速度。由于模板挂件没有被缓存,导致每次打开网页时,都需要再次向mysql查询和输出结果,网站的响应速度会受比较大的影响。


但是,ONex B2B2C默认是支持对模板挂件缓存的,为什么在这里失效了呢?第一反应,是客户网站关闭了缓存功能。


打开config/production/cache.php,果不其然,缓存功能处于关闭状态:

cache.jpg

注:enabled为false时,缓存为关闭状态,为true时,则是开启状态。


既然客户关闭了缓存,那我们开启行不行?一般情况下,处于开发阶段的网站,开发人员出于调试的需要,会关闭掉缓存,以便让修改的内容实时生效。这种情况 下将enabled改为true即可。但是有些做了深度开发的网站,关闭缓存可能是一些特殊功能的需要。比如清风的这个客户,请第三方公司在B2B2C基础上开发了多语言和多币种切换功能,需要根据客户的选择输出不同的首页内容呈现给终端用户。直接把enabled改为true,结果内页都报503错误了。


如下图:

503.jpg

如果要解决问题,应该把这些功能按正规的方法进行修改,以便让不同语言版本和币种页面能被缓存到,但这无疑要增加开发成本,甚至原有功能可能推倒重来。这是费时费力的事情,暂不在本次讨论范围。


那是不是没有办法提升速度了呢?当然不是的。在cache.php文件中有这样一段提示:

未标题-4.jpg

当设置缓存关闭的时候,可以让某些内置应用忽略掉关闭设置,也就是说指定的应用的缓存将继续生效。系统默认只设置了session、vcode、sysuser忽略系统缓存设置,我们可以让模板挂件也忽略掉缓存设置。


在43行左右,添加"theme-widgets",注意前面要加上英文半角逗号。

未标题-5.jpg


并在98行左右,把“theme-widgets”的"resource"设置为"local":

未标题-6.jpg


最后再来看下优化结果:

未标题-7.jpg


网页打开速度已经提升到了0.6秒左右,网页已经能秒开了。


但问题又来了,不久,客户反馈说开发的多币种功能不能切换显示对应的货币了。

未标题-9.jpg


再来看这个模板挂件代码:

未标题-8.jpg

如上图所示,客户原先的第三方开发者,把货币币种和金额的换算输出直接写在了挂件的代码中(非常不推荐这么做,多币种的功能逻辑应该在底层中去统一处理,而不是分散在各个应用层),导致内容直接被缓存为第一次打开时显示的界面了。既然如此,那我们增加对多币种页面的缓存。


在“/app/base/lib/cache/repository.php”这个文件中167行左右加下红圈中代码:

未标题-12.jpg

注:以上仅提供一个思路,不同的功能环境需求不一致,请不要直接复制。


币种问题顺利解决,多语言功能也可以参考这种方法使不同语言版本页面能被缓存到。


当然,页面打开速度还是可以继续通过优化底层代码、前端脚本、lnmp环境继续提升。在此就不一一赘述了。有兴趣的,可以加我QQ9516097一起探讨一下。

------分隔线--------

关键词:ONex B2B2c,性能优化,缓存不命中,打开慢的处理

转载请保留://www.p5vjo.com.cn/html/jszx/b2b2c/article-2829.html

------分隔线--------
尚未注册畅言帐号,请到后台注册
  • 乌鲁木齐市文庙特色活动庆端午 2019-05-24
  • 北京进入旅游旺季 警察提示游客需防揽客者连环设套忽悠购物 2019-05-23
  • 注意了!报考这个专业须先参加面试 2019-05-23
  • 请问版主,我说计划经济和市场经济的帖子,怎么就要进退稿箱呢?中国吃市场经济的亏,还不多么?! 2019-05-23
  • 海淀区曙光街道举办第五届龙舟赛 2019-05-22
  • 竹编:缝隙里的乡愁文章中国国家地理网 2019-05-22
  • 乌鲁木齐市中级人民法院庭审在线直播 2019-05-22
  • 海南海口查处多名村组干部合伙侵占扶贫款案 2019-05-22
  • 2018广州中考语文作文题揭晓:《原来这么简单》 2019-05-21
  • 河北石家庄首家农村少年邮局揭牌 2019-05-21
  • 外媒称中俄合作攸关世界秩序 两国间很难被“插入楔子” 2019-05-21
  • 新华社评论员:永远做中国人民和中华民族的主心骨——三论习近平总书记在十三届全国人大一次会议上的重要讲话 2019-05-20
  • 两位幼童被瓜子花生卡喉 十堰市人民医院多学科协作成功取出 2019-05-20
  • 调查:六成老人感到幸福,西藏排第一,您家的呢?  2019-05-19
  • 为丰富百姓餐桌提供更多选择(打开对外开放新局面) 2019-05-19
  • 259| 739| 170| 510| 397| 363| 894| 47| 330| 598|