项目性能优化-O2O项目优化总结

8月份升级之后用户普遍反映系统变慢,然后就开始了性能优化之路。
一、升级之后出现两个问题:
1、加载城市列表时出现空白页,黑科技接口导致,加载城市列表的接口过于简单粗暴,调用app端接口时将所有商户的所有缴费项目,拼接上商户地址信息,返传给web端服务器,三张表中的数据杂糅在一起,数据量大,遍历多张数据表操作开销大,导致在web端调用app端接口时curl原先设置的3秒超时时间不够用,接口调用失败。
解决方式:分拆接口,将该接口拆成若干个接口,去掉无用数据,保证跨服务器传输数据的效率,并在接口中加上memcache缓存,减少查询数据库次数。
2、首页相应十分迟缓,打开首页需要十秒左右,原因:
1,邮储APP退出之后,会清除缓存,导致用户每一次重新打开APP就需要完全加载项目资源。
2,首页静态资源太大,由于静态资源全封装在header文件中,引用后会加载全部资源。
3,生产服务器Apache未开启gzip文件压缩
解决方式:打开Apache的gzip压缩,首页不引用header文件,只在页面中引用必须的静态资源,压缩jQuery等静态文件,首页菜单由查库操作改为配置文件。成效显著,首页加载数据大小由原先800K降低至80K左右,首页响应速度提升明显。

二、逻辑优化
使用xhprof性能分析工具测试用户端逻辑,找出内存或CPU消耗较大的代码,项目中有一些老的已经没有使用场景的方法依然在运行着,消耗系统资源,去掉,项目中查库频繁的操作使用memcache缓存,减少查库次数。

三、压力测试
联系了邮储相关部门对项目进行压力测试,测试内容包括单一功能点压测、单独首页压测、用户端整体流程压测、两轮压测
第一轮压测:总体,30并发,tps:58笔/s, 171前端机CPU占用80%,173后端机无压力,数据库服务器无压力,memcache服务器无压力
单一首页压测,tps:450笔/s,171前端机CPU占用100%

第二轮压测:
1,恢复首页优化之前的代码,压测单一首页,tps:110笔/s,总体40笔/s,平均时间0.139s
2,恢复首页优化之前的代码,开启gzip,单一首页:tps140笔/s,相应时间0.157s,CPU占用30%,CPU使用率不再上涨
3,开启gzip,使用优化后的首页代码,压测单一首页,tps:576笔/s,响应时间0.026s,171前端机CPU70%,占用率不再上涨

整体压测,压力全在前端机,数据库服务器,app服务器,memcache服务器均无太大压力

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章