浅谈基于腾讯云的压测逻辑
背景:
在云上环境进行压测的场景,主要有单链路和全链路压测。其中,单链路压测用于业务添加新的接入模块和单业务架构迁移后稳定性评估;全链路压测则更多是在割接上云前演练,大促前容量评估等几个场景。
一、压测姿势普及
1)链路打标
对压测流量打上特殊的标签,根据标签识别将压测数据写入到影子表,以至于不影响到线上流量数据。通常采用到方法是添加测试标识,或者是指定测试账号来识别压测流量,相比于传统构造请求压测数据的方式,目前大部分电商采用的是流量回放的方式,减少维护成本和增加压测多样性。
添加测试标识:在压测请求header 添加特定指标;
Headers = {'Press-Ori':'PressKA'}
添加测试账号:提供测试账号,针对指定账号到请求,其db链接指向影子库表。
for UserId in range(PressFlow):
Args = 'AdminTest' + str(UserId);
p.apply\\_async(Press, args=(Args,))
3、压测系统逻辑
使用的并发逻辑:
p = Pool(PressFlow)
for i in range(PressFlow):
op = "select \\* from Buy\\_Car where User='{}'".format(User)
p.apply\\_async(conn\\_sql, args=(op,))
p.close()
其中:压测流量50% = 50进程;
4、监控系统逻辑
数据来源:通过云监控拉取数据存入到mysql;
数据展示:grafana直接拉取mysql的数据;
健康指标:通过指标进行阈值计算,阈值内则视为正常。
下一篇:补充现网压测工具说明和对比
