高并发系统设计 40 问
唐扬
美图公司技术专家
49013 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 49 讲
高并发系统设计 40 问
15
15
1.0x
00:00/00:00
登录|注册

32 | 压力测试:怎样设计全链路压力测试平台?

系统健康度检查和压测流量干预模块
压测数据隔离模块
流量构造和产生模块
全链路压测系统的价值
实时监控和告警的重要性
压测数据和正式数据的隔离
压力测试的重要性
流量监控组件
增加流量的步长
压力测试目标设立
针对写入数据的请求
针对读取数据的请求
特殊注意点
流量数据工厂
压测平台的模块
风险的控制
流量的隔离
压力测试的重要性
压力测试的概念
一课一思
课程小结
压力测试如何实施
数据如何隔离
压测数据的产生
如何搭建全链路压测平台
什么是压力测试
压力测试:怎样设计全链路压力测试平台?

该思维导图由 AI 生成,仅供参考

你好,我是唐扬。
经过两节课的学习,我们已经搭建了服务端和客户端的监控,通过监控的报表和一些报警规则的设置,你可以实时地跟踪和解决垂直电商系统中出现的问题了。不过,你不能掉以轻心,因为监控只能发现目前系统中已经存在的问题,对于未来可能发生的性能问题是无能为力的。
一旦你的系统流量有大的增长,比如类似“双十一”的流量,那么你在面临性能问题时就可能会手足无措。为了解决后顾之忧,你需要了解在流量增长若干倍的时候,系统的哪些组件或者服务会成为整体系统的瓶颈点,这时你就需要做一次全链路的压力测试。
那么,什么是压力测试呢?要如何来做全链路的压测呢?这两个问题就是本节课重点讲解的内容。

什么是压力测试

压力测试(简称为压测)这个名词儿,你在业界的分享中一定听过很多次,当然了,你也可能在项目的研发过程中做过压力测试,所以,对于你来说,压力测试并不陌生。
不过我想让你回想一下,自己是怎么做压力测试的?是不是像很多同学一样:先搭建一套与正式环境功能相同的测试环境,并且导入或者生成一批测试数据,然后在另一台服务器,启动多个线程并发地调用需要压测的接口(接口的参数一般也会设置成相同的,比如,想要压测获取商品信息的接口,那么压测时会使用同一个商品 ID)。最后,通过统计访问日志或者查看测试环境的监控系统,来记录最终压测 QPS 是多少之后,直接交差?
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

全链路压测是保障系统可用性和稳定性的重要手段,本文介绍了全链路压测的概念和搭建全链路压测平台的关键点。全链路压测需要考虑流量的隔离和风险控制,平台包含流量构造和产生模块、压测数据隔离模块、系统健康度检查和压测流量干预模块。文章详细介绍了压测数据的产生过程,强调了流量拷贝的方式和压测流量染色的重要性。在实施压力测试时,需要设立明确的测试目标,并逐步增加流量,观察系统性能表现。文章还提到了开发流量监控组件来及时发现性能瓶颈,并对系统进行监控和告警。全链路压测平台的搭建对于保障系统稳定性至关重要,有助于发现系统中存在的性能隐患,特别是在高并发大流量下进行测试,从而提高系统的稳定性和可用性。文章还强调了全链路压测系统的三方面价值:发现性能瓶颈、容量评估和预案演练。建议读者在系统流量快速增长时考虑搭建全链路压测平台,以保证系统的稳定性。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《高并发系统设计 40 问》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(19)

  • 最新
  • 精选
  • 阿土
    我所在的团队,因为没有资源提供影子库,所以一直做不起来真正的全链路压测。规划的很美好,就因为没有存储隔离,所有的东西都成了泡影。另外,业务系统领导对于系统改造支持压测也不支持,这就造成无法实施。所以目前的全链路压测都是固定的几个账号,几个商品。得到的结果可信度也有限

    作者回复: 其实如果没有做影子库,可以只做下行流量的压测(读请求),一般读多写少,其实也可以大致反应你的系统的容量

    2019-12-06
    2
    19
  • 新世界
    老师:流量复制和重放后的响应对比有什么工具推荐吗?还是自己去写解析?

    作者回复: goreplay,tcpcopy

    2019-12-13
    14
  • 天天向善
    是不是我这样理解,购买商品下单要存储到影子库,第三方支付用mock,支付的回调也mock

    作者回复: 是的~

    2019-12-06
    9
  • 问题究竟系边度
    如果服务里面有线程池,异步操作如何染色,发送mq消息之类怎么处理。

    作者回复: 好问题! 1. 线程池的话 需要改造,把标识传到异步任务里面 2. mq也是 可以把标识放到消息体里面

    2020-04-26
    5
    7
  • 电光火石
    老师你好,有个问题,压测的流量和正常的流量是否需要分流,比如说正常的访问把他分流到某几台机器上,压测的流量把他分流道几台机器上,做物理隔离? 做的话,因为后面都是一堆的服务,如果每个服务都做分流,复杂度还是蛮高的;不做的话,是否会相互影响,尤其影响到线上流量? 谢谢了!

    作者回复: 这个其实是不需要的,如果能做到水位监测就可以在系统出现问题时及时的停掉压测流量

    2019-12-17
    6
  • 新世界
    线上真实环境也是用goreplay做的流量拷贝吗?我最近也在做,但是用goreplay cpu使用率瞬间很高,担心影响线上真实系统,我想请教下老师,你们线上真实环境也是用goreplay 做流量拷贝吗?启动goreplay后也是cpu使用率很高吗

    作者回复: 没有遇到过CPU使用率高的情况,我们在线上压高峰五倍左右的流量,没有看到问题

    2019-12-13
    5
  • 古德
    如果是一个新系统还没有上线,是不是就没法通过拷贝流量的方式去做全链路压测了? 另外,如果要对拷贝的流量进行加速重放,有开源的工具能实现吗

    作者回复: 是的,那样只能模拟流量了。工具的话我用的比较多的是goreplay,已经在github上开源

    2020-03-22
    4
  • 电光火石
    线上做压测,除了技术问题外,还有观念问题,很多人不敢做,怕出事情背锅

    作者回复: 这个确实是的,以前有个合作团队也是这个观念。其实是不用的,只要做好监控,是可以在线上压测的

    2019-12-14
    4
  • mghio
    公司资源和人力有限,目前只做了些主要功能接口压力测试,全链路压测对小公司感觉比较难完成

    作者回复: 全链路压测并不复杂,可以结合业务特点只压测读流量或者写流量

    2020-05-11
  • 惜心(伟祺)
    讲的好棒

    作者回复: 谢谢~

    2020-02-15
收起评论
显示
设置
留言
19
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部