电商网站的性能是如何保障的?


本文作者:徐晓。未经作者许可,禁止转载!

现任京东高级测试开发工程师,精通软件测试、性能调优、具备九年一线测试开发工作经验。


大型电商网站每天面对大量的用户访问和并发,它们是如何保障网站性能的呢?本文从三个方面介绍了电商性能!

• 电商与传统软件的区别;

• 电商网站为什么性能高;

• 电商是如何做性能测试的;

一、电商与传统软件的区别

二、电商网站为什么性能高

为什么电商网站支撑这么大的订单量,性能还能这么高?系统运行这么稳定?主要从以下几方面给出答案:

注意!划重点了

• 架构

电商网站大多是基于SOA面向服务的架构,各个子模块都可以拆分为一个独立的系统,提供对外的统一接口,服务跟服务间通过接口调用,耦合度很低,都是轻量级的层面,服务的资源占用一般为4c 8g,还有一部分是2c 4g;而传统软件资源占用一般都要16g 、32g甚至是64G

• 硬件

电商网站一般使用虚拟机集群

• 网络

电商网站静态文件都是cdn网络加速,动态加速利用自己本身的动态优化方式,机房网络,至少备两条网络链路,一条网络链路有问题会秒级切换另外一条链路

• 数据库

至少一主一从或者一主两从,大的做数据库集群或者分库分表

• 缓存

缓存由Redis分片而不是Redis实例组成

三、电商网站是如何做性能测试的?

1.压测类型:接口测试,WEB端压测很少做

其接口测试的优点:

• 路径覆盖问题

• 测试前置

• 更容易发现底层问题

• 接口测试脚本更稳定,复用性高

2.压测环境:线上压测

优势:

• 维护一套跟线上环境一致的测试环境代价太高

• 数据更准确

• 线上监控系统更详细

风险:

• 外围接口的调用

• 影响线上使用

3.压测策略:单接口压测、混合接口压测、集群压测

• 单接口排查问题:即测试单台虚拟机的极限

• 多接口看业务耦合

• 集群压测看实际量:涉及到线上的全部集群,一般是后半夜执行

• 忽略思考时间

4.关注的主要性能指标:TP99、TP999、TPS

• 要求TP99在10ms内、TP999在20ms内,且趋势平稳

• TPS换算为每分钟方法调用量,要求压测调用量要达到618、双11的10倍,甚至20倍

5.如何加压

• 先压单台

• 再压多台

• 最后压集群

即先压一台虚拟机,逐台增加虚拟机数量,一般压到5台。观察虚拟机数据量增加的时候性能的变化趋势,确定有无比例关系,以确定最终需要的虚拟机数量

6.如何监控

• 硬件监控平台

• 方法调用监控平台

• 统一日志平台

7.性能测试自动化

• 打通线上压测环境,具备单实例、多实例直连压测或全集群压测条件

• 性能压测环境自动部署,提升效率,降低部署错误率

• 测试场景任务化、自动化

• 多任务并行压测,缩短测试周期

8.举行军演

618及双11前都会进行军演,实际流量来检验系统性能

 

Top