蚂蚁集团技术专家山丘:性能优化常见压测模型及优缺点

本文由蚂蚁集团技术专家陈显铭(山丘)分享,介绍了性能优化的重要手段——压测,包括压测模型的抽象、环境准备、压测执行闭环,以及线下压测、线上引流压测和线上全链路压测模型的优缺点。通过这些模型,可以对系统性能进行高效评估和优化。
摘要由CSDN通过智能技术生成

陈显铭(山丘)

读完需要

6

分钟

速读仅需 2 分钟

陈显铭,花名山丘,就职于蚂蚁集团,对分布式应用架构、服务化、性能优化等有深入的理解。参与支付宝支付链路核心系统,设计、调优应用系统关键能力, 高效、稳定保障系统平稳支撑大促。曾历经多年双十一大促,对于性能调优、构建高可用系统有丰富的实战经验。熟悉常见的性能优化模式,比如应用结构优化、链路级、单系统优化等多种优化方式。对于常见的压测模式,如单机压测、链路级压测都有深厚的积累。作为一名性能专家,以追求性能最大化为己任,与之相伴的自然是高技巧、高难度的代码优化。这也是一名性能专家的毕生追求。

通过性能优化的常见模式及趋势,我们大概知道了性能优化的一些招式,但是发现有性能问题的常见模式还是压测。本章列举常见的压测模型并对其进行阐述分析。

1

   

压测模型抽象

压测模型可以被抽象为图 18.1 的模型。该模型主要包含如下三大部分。

  • 压测任务管理:负责对压测场景、目标、策略进行管理。比如对支付业务场景进行压测时需要持续 30 分钟,且需要使 QPS 的压力值达到 1WQPS 等。

  • 压测任务执行:通过单机、分布式等压力机执行压测策略层下的压测任务,并在压测系统中输出相关监控指标。

  • 压测结果分析:压测机会产出相关的系统性能日志,之后通过监控系统、工具体系进行数据分析,分析压测情况,优化压测策略,找到系统瓶颈。

图 18.1

1.1

   

压测环境准备

环境准备是压测的基础,下面是需要准备的主要软件和硬件环境的内容。

  • 压力机资源。

  • 被压测系统。

  • 依赖资源(压测数据、第三方依赖)。

1.2

   

压测执行闭环

压测是一个不断调整压测参数、进行压测、找到问题、解决问题、再次验证等一系列

过程的组合,并不能一次性就可以做到完整、极致。整个的压测过程是一个闭环过程,这个过程可以拆分为如下的几个方面:

  • 使用压力机进行压测。

  • 分析程序收集压测数据(RT、QPS/TPS、成功率、错误、内存、I/O 等)。

  • 分析压测报告。

  • 确定优化计划。

  • 反馈到压测系统或者调整压测策略。

2

   

线下压测模型

线下压测模型最多,也是最容易实现的。对于有技术实力的公司,开发环境和压测环境是隔离的。图 18.2 所示的是分布式系统结构的线下压测模型拓扑图,实线是同步调用,虚线是消息类调用。

图 18.2

线下压测模型的优缺点如下。

2.1

   

优点

  • 可以实现快速压测。

  • 压测场景可以自由自定。

  • 可以进行稳定性测试或者链路性能回归。

2.2

   

缺点

  • 仿真度不高。

  • 环境部署复杂。

  • 多个压测任务一般不能并行。

  • 存在环境问题:

  1. 依赖系统可能缺失。

  2. 测试环境和线上环境的数据量不一样。

  3. 服务化后,线上各应用是集群部署,比如 A 可能是 1000 台,B 可能是 100 台, 是 10:1 的比例关系,但是线下的比例一般是 1:1,这个比例是失真的。

3

   

线上引流压测模型

线上引流压测模型是使用比较多的高仿真压测,其模型结构如图 18.3 所示。该模型的优缺点如下。

图 18.3

3.1

   

优点

  • 真实的业务场景测试。

  • 可以按需缩容。

  • 可以快速回退。

3.2

   

缺点

  • 无法对链路节点进行压测(与全链路压测相比,该压测方式存在着数据库流量可能不够、网络节点不全等问题)。

  • 很难进行超出业务流量的压测。

  • 很难评估链路性能。

<
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值