性能压测总结

2022-07-14 10:46:43 浏览数 (1)

一 性能压测必须知道几件事

1 性能是系统或组件在给定约束中实现的指定功能的程度,诸如速度、正确性、内存使用

2 对系统性能的描述应该是多方面的,如:执行效率、稳定性、兼容行、可靠性、可扩展性容量等;其中,执行效率通过并发数、响应时间、吞吐量、成功率、资源消耗综合

3 并发与并行,平时说的并发是广义并发,不是服务100个用户,而是单位时间处理100任务请求

4 吞吐量=并发数/平均响应时间=请求总数/总时长,实际并发往往不是压测工具预设的并发;

二 UT压测

golang-sdk、java-sdk都提供了很好的工具

三 组件压测

1 压测工具

http: ab

grpc: ghz go get github.com/bojand/ghz

2 压测环境

对象=x核xG,外部依赖带宽,网卡...

3 设计压测cases

cases

并发数

Duration

Req

RPS

平均耗时

P99

吞吐

实际并发

CPU(4u)

xxx

100

60

581680

9694.59

10.03

38.06

9694.59

97.2375067

60%

4 记录压测数据

5 分析压测结论

通过go-pprof,jstat等工具分析压测时,接口质量,优化代码

go tool pprof http://xxx

go tool pprof -http=:8080 pprof.xxx

go tool pprof -http=:8080 -base xxx.base xxx.current

5 输出压测报告

包括但不限于

执行效率通过并发数、响应时间、吞吐量、成功率、资源消耗

四 系统压测(前置准备,系统可观测性,监控打点)

1 压测链路确定,指定输入 输出

2 系统环境准备

链路上组件资源 依赖

3 设计压测用例

复杂度 压力大小(请求数、请求大小)

4 记录压测数据

5 分析压测结论

比如关注就是系统的qps、带宽

用例

组件1

组件2

组件3

QPS

入带宽

xxx

4C16G*2

4C8G*2

4C8G*2

2.5k/s

160MB/s

6 总结性能基线

7 根据性能基线估算成本

五 压测持续化

压测流程工具化,压测报告自动化,压测用例集成到CI

六 压测价值

1 性能优化的依据

2 组件、系统性能能力的量化参考,进一步得出性能基线,对外交付的sla依据

3 成本参考,性价比

0 人点赞