压测方案的撰写方法&模板

一、概述

1.1背景&目的

    描述:交代本次压测的背景信息,基于什么现状去做的;描述下本次压测是为了什么,想要得到什么效果;

    例如:本次主要在推荐配置上压测部分核心接口和场景,旨在确认某项目核心接口和场景的基线数据以及评估系统的性能,并对标行业性能目标进行优化调优,输出超越同行的性能标准和可扩展能力的优秀产品,满足未来客户不同诉求下的性能标准

1.2接口清单

    描述:接口简单描述,确认优先级

    例如

管理平台

openapi创建内部用户

Openapi /v1/innerUsers/create

P0

1.3场景与指标

描述:列举清楚压测的接口、场景和指标;其中常见的指标有并发数、TPS、RT;场景考虑的点会比较多,以不同的业务为准

例如:

管理平台

openapi创建内部用户/v1/innerUsers/create

openapi

并发数>xx

T PS > XXX

RT <XXXms

二、环境

真实记录整个现场,后续压测也方便比对

2.1系统部署架构图

架构图是非常重要的,决定了后续需要监控哪些服务,熟悉业务流转,业务的部署情况不一样,也会影响性能,甚至能提前预判哪些服务可能存在问题,像这样:

2.2服务器的配置

硬件配置、不同的服务性能配置参数不一样(JVM ,DB ,中间件)、软件配置

例如:

4 C 8 G

rocketmq

-Xms1g -Xmx1g -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m

JDK 1.8.0_292

2.3应用配置

主要是关注与性能相关的配置tomcat、mysql、redis、连接数、超时时间等

例如:

# Tomcat settings

server.tomcat.min-spare-threads= 100

server.tomcat.max-threads= 1000

server.tomcat.max-connections= 3500

server.tomcat.accept-count= 1000

2.4压测数据库存量

存量数据的重要性,为什么不建议空库压测;收集数据当前存量、增长量(例如1个月2 0 W),推演1年后的存量数据,作为本次压测的基准(这样尽量保障系统运行一年也能达标);如果没有存量数据,这个就可以基于目标/指标考虑,比如,一天要签署1 0 W份* 365 ,还要预估增长情况,可以* 2 或3倍;原则就是不要预估少了,但是太多太离谱也不行,这样对人力资源的消耗过大

三、压测策略

3.1压测工具

提前安装各种监控平台和分析工具,jmeter等

3.2压测指标

分类

具体类型

说明

例如

Perceived system performance

R esponse time

请求响应时间

一般关注平均响应时间,90%,最长等

t ps

每秒处理事务数

通常类似qps

Error rate

错误率,关于错误率的统计主要有以下几种:

  • connection timeout:http请求中出现504的次数和比例。
  • error response:http请求中出现500的次数和比例。
  • 错误网关数:http请求中出现502的次数和比例。

一般要求0%,稳定性压测时可以接受0.01错误率

并发数

指某一时刻向服务器发送请求的用户数

system performance

CPU

us : 用户态cpu时间

sy : 系统态cpu时间

id : 空闲cpu时间

w a: 等待io的cpu时间

load average:平均负载

一般cpu使用率<8 5 %

内存

V m使用情况

页面swap

si:交换进内存

so:交换出内存

一般使用率<8 5%

磁盘

Hhd/ssd, 类型

(read /write ) I ops : 即每秒系统能能处理的I/O请求数量。

TPUT: 吞吐量。

网络

速率、带宽、吞吐量、 时延

其他

GC

Y GC频率 ,FGC 频率 , YGCT ,FGCT, 堆使用率

线程池

A ctive /init/max thread count, 队列

数据库jdbc

jdbc active connection

S ql耗时

慢sql,平均/最大耗时

命中率

K ey buffer,q uery cache 等

等待次数,等待时间等

3.3策略

1、      指标验证 : 验证被测交易在测试环境中是否能达到指标要求的TPS/RT,每个轮次持续5分钟。(单接口指标验证,如果单接口都无法达到指标,无需再进行负载和稳定性测试,不满足最基础的交付目标,需要重点优化。)

2、      负载测试 :在指标验证基础至上,对每个接口逐步增大并发,每个轮次持续5分钟。(阶梯性的加压测试,找出性能拐点,压测出当前系统下最大的处理能力,便于对后续容量和风险预估。)

(验证结果是否可信,可以用公式tps(约) = 并发数/ rt 去套,约接近证明结果越准确)

3、      混合测试 :贴近业务情况,合理设置比例进行压测

4、      稳定性测试 :建议> 12h ,观察系统波动、有无崩

3.4计划与时间安排

3.5风险

  • 46
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

和你的六十六

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值