如果我来负责支付宝双11大促保障(三)

2016-11-29  本文已影响53人  转瞬之夏

在梳理好有哪些系统将参与到大促后,我们的目标就是对它们的现状进行健康检查,为后续制订优化方案提供数据支持。

同样,检查纬度还是依照上面罗列的,从自身、依赖方、服务方、基础服务和后台服务五个纬度来检查。


自身


1、硬件
主要是检查服务器的各项指标,包括CPU、IO、内存、连接数以及磁盘剩余空间。

2、软件
此次我们只是着重于检查JVM的一些参数,如GC策略和启动参数。

3、接口服务

4、系统容量
系统容量的评估是大促目标制订和优化的关键,唯有对容量的准确评估,才能对系统的极限有清晰的了解,由此能确定系统大促是否能承受住压力。
当系统架构简单,数量少时,我们往往都是用经验来评估系统容量,但这样的评估往往比较粗糙,和实际出入比较大,给我们系统的稳定带来很大风险。随着系统越来越多,越来越复杂时,经验法已经完全无法解决我们的问题了,于是,我们将采用新的方法来评估系统容量——压力测试
接下来,我将结合我们的压测过程来介绍压测。
压测的目的主要有以下四种:

压测环境分为测试环境压测线上生产压测。前后两种环境的意思根据字面意思就可以理解了,一个是在测试环境,一个是在真实的生产环境。最开始的时候,测试环境我们是采用生产环境打一定折扣的配置,但这样的压测由于和实际环境出入比较大,因此逐步被我们舍去。后来,采用的是在测试环境使用和生产环境一样的服务器和数据库配置,效果相对于前者更理想。同时,我们也局部使用线上生成压测,由于条件约束,我们不能实现全链路生产压测,只是实现了部分系统生成压测,因此是局部。最理想的自然是全链路生产压测,无论是服务器数量,网络环境还是db都是真实的,但由于成本比较高,难度很大,因此综合多方面因素,此方法大多数情况不被采用。
压测类型有:

压测条件,包括IO、CPU、load、用户数等。条件的控制都决定了一次压测的成败与否。在实际压测过程中,往往需要多次修改条件才能找到系统的极限。在双11前,我们进行了一百多次压测,才有了比较准确的值。

依赖方


此步骤比较简单,主要是梳理依赖方的tps、耗时和成功率

服务方


我们当时没有需要检查的

基础服务


基础服务可以从软件和硬件两个角度来考虑。硬件无非就是服务器了,参照上面的指标依依检查即可。软件可以从以下两个方面来考虑:


后台服务


我们当时没有需要检查的。

今天的分享就到此结束了。

上一篇下一篇

猜你喜欢

热点阅读