性能优化实践

 背景介绍

宅米是一家专注校园电子商务的互联网企业,目前主营校园超市O2O。公司成立于2014年11月,仅仅一年多的时间,公司即经过4轮融资,覆盖近200座城市,1000多所大中专院校,10000多栋宿舍楼,日均订单20万,峰值订单50万。

 

初识架构


wKiom1eYCXGCqV0xAAD_Mey5VVw457.png-wh_50

这样的系统能不能应对今后快速的业务发展?性能问题会不会成为持续增长的交易量的瓶颈?系统能不能撑得住访问高峰期的大规模并发访问? 性能优化成为这个时候最重要的工作,于是安排专门的工程师进行性能测试和性能优化,从架构、代码、数据库、运维各个层面梳理系统状况,发现系统瓶颈,进行针对性优化。

小强点评:这种架构是初识架构,一般系统都是在这个架构上进行逐步演化的,掌握基本的架构知识对于测试工程师来说十分重要。

 

性能测试


校园零食购物的特点是在晚上10点左右进入高峰,在此前后一小时的交易量大概占整天交易量的一半,也就是说,如果要设计一个日订单100万的系统,其实要承受的交易压力是每小时50万单。

当初按照二八法则推算峰值每秒单量为556笔,以此为基准根据Nginx日志分析后端接口调用频率,推算出接口调用比率前20的请求,以此构造测试场景。

在执行性能测试时,我们使用Jmeter作为性能测试工具,利用了云服务提供的系统资源监控作为基础。

小强点评:很多人一直纠结并发数怎么去算,其实算法非常多,在小强性能测试培训班中就讲了大概4种算法,个人觉得根本不存在准确不准确的问题,关键是在你的应用场景,这世上哪里有绝对的准确?


架构优化


wKiom1eYCZuAXuOrAAHtsJYp9TU437.png-wh_50

性能测试结果并不乐观,虽然系统此前使用了分布式缓存对热点数据进行缓存,但是比较随意,哪些数据需要缓存,失效策略如何设置都没有认真分析和设计。性能测试后决定规范缓存使用,尽可能将各种频繁读取的数据全部缓存起来,并将Redis服务器做集群和主从复制部署。

小强点评:缓存带来的效果是明显的,一般对于大量数据的查询我们都要首先考虑缓存方面的优化。当然,这里说的是后端缓存,对于前端的缓存也需要考虑。

此外还使用第三方CDN服务进行静态文件访问加速,产品图片、JavaScript文件、CSS文件等都通过CDN加速,同时通过Nginx反向代理服务器提供静态文件的前端缓存。

小强点评:这些都是偏向于前端性能优化方面的问题了,感兴趣的可以看我在51CTO学院上的前端性能测试视频。http://edu.51cto.com/course/course_id-563.html

性能测试发现,系统主要瓶颈点在数据库上,虽然使用Redis将热点数据缓存起来,但是数据库依然在并发量达到一定程度后表现出系统过载的情况。于是对数据库进行主从分离。

完整内容请点击此链接查看:http://xqtesting.blog.51cto.com/4626073/1830520
 

广而告之


1、小强性能测试2016年11月6号开课(前10名优惠300),咨询QQ:2083503238、1684129674、480934277
2、小强python自动化测试2017年2月开课(前10名优惠300),咨询QQ同上
3、官网正式上线:http://xqtesting.sxl.cn/
4、粉丝评价:http://user.qzone.qq.com/2423597857/photo/V12meFek494KcQ/

posted @ 2021-05-05 20:03  hanjialong  阅读(79)  评论(0编辑  收藏  举报