系统稳定性保障核武器——全链路压测
不确定性带来的系统可用性问题
线上单机与单系统压测
单系统压测的问题
- 压测环境,它是指具备数据与流量隔离能力的生产环境,不能影响到原有的用户体验和用户流程、BI报表以及推荐算法等;
- 压测基础数据,它主要包括压测用户、店铺、商品等基础数据;
- 压测场景模型,它主要是指压测哪些业务场景,每个场景下压测多大量等;
- 压测流量,它主要由压测请求的协议来决定压测流量的输出;
压测环境
压测基础数据&压测场景模型
压测流量平台整体结构
压测流量平台挑战
压测流量平台技术选型
压测流量平台——压测引擎
- 协议支持,主要支持的PC端协议包括Http、Https、websocket,无线端协议是Spdy、http2、accs、acds、mqtt。由于真正在双11时,用户使用的浏览器各异,进而导致与服务端协商的加密算法不一致,为了尽量模拟准确性,需要支持SSL 2.0\3.0、TLS1.0\1.1\1.2不同算法套件灵活配比,贴近用户端行为。
- 请求发送,由于全链路压测是利用现有的CDN集群,为了不影响现有CDN业务的正常运转,需要做Cgroup资源隔离(主要包括CPU和网络),为了实现性能最优,通常采用异步Reactor模型发送请求,链路间线程池隔离。
- 集群协作,控制中心Master充当大脑来发送指令,所有节点根据收到的指令执行下一步操作,并且所有slave压测节点会实时将自身状态同步到Master,以便于其做决策,如果slave节点状态不好,master则将其剔除。如果压测引擎与控制中心失联,则压测引擎会自杀,避免流量浪费。
双11全链路压测现场
全链路压测平台
最后更新:2017-08-13 22:26:07