1.性能优化

概述

今日目标:

  • 性能优化的终极目标是什么
  • 压力测试
  • 压力测试的指标

性能优化的终极目标是什么

用户体验 = 产品设计(非技术) + 系统性能(快,3秒不能更久了)

后端:RT,TPS,并发数

  • 影响因素01:数据库读写,RPC,网络IO,逻辑计算复杂度,缓存
  • 影响因素02:JVM Throughput,Footprint,Latency

压力测试

  • 什么是压力测试:不断施加压力,预估系统负载能力的一种测试
  • 为什么要对系统进行压测?有必要?
    • 一般而言,只有系统基础功能测试验证完成,系统趋于稳定的情况下,才会进行压力测试
  • 压测的目的是什么?
    • 1.当负载逐渐增加时,观察系统各项性能指标的变化情况是否有异常
    • 2.发现系统的性能短板,进行针对性的性能优化
    • 3.判断系统在高并发情况下是否会报错,进程是否会挂掉
    • 4.测试在系统某个方面达到瓶颈时,粗略估计系统性能上限

压力测试的指标

指标 含义
响应时间(RT) 是指系统对请求作出响应的平均时间,对于单用户的系统,响应时间可以很好度量系统的性能
吞吐量(Throughput) 是指系统在单位时间内处理请求的数量,每秒事务数TPS也算是吞吐量的一种
资源利用率 CPU占用率,内存使用率,系统负载,网络I/O(降本增效时会考虑)
并发用户数 是指系统可以,同时承载的正常使用系统功能的用户数量,用户不同的使用模式会导致不同用户在单位时间发出不同数量的请求
错误率 失败请求占比,在测试时添加响应断言,验证不通过即记为错误;若不添加,响应码非200即为错误

各个公司的指标可能还一样,不过前三样,是很重要的

如上图:总体上来看 2333

  • 两个点:最优用户并发数(利用率刚刚达到峰值),最大并发用户数(吞吐量开始下降的起点,且响应时间还可以接受)
  • 三条线: RT,Throughput,资源利用率
  • 三种状态:资源饱和,吞吐量下降,用户受影响

压力测试工具JMeter

JMeter是Apache组织开发的基于Java的压力测试工具,用于对软件做压力测试;可以用于测试静态和动态资源 ,例如静态文件, Java 小服务程序,数据库,等等。

注意: 需要安装 jdk

压力测试案例

目标:完成压测案例,评测 spring boot 项目的吞吐量上限。

步骤:

  • 1.创建测试计划
  • 配置线程组,http请求,断言,结果监听器
  • 执行测试
  • 查看测试结果,分析测试结果

测试案例移步至此

结束

性能优化理论至此就结束了,如有疑问,欢迎评论区留言。

相关推荐
利威尔xu6 小时前
Go GMP 调度器 10 个高频追问:3 个线上故障让 P99 从 80ms 飙到 2s、10 万 goroutine 泄漏
开发语言·后端·面试·性能优化·golang
Sayai6 小时前
Elasticsearch Rollup 汇算索引实战:监控指标多粒度预聚合查询,附 painless 时间窗取每日最新值
大数据·运维·elasticsearch·搜索引擎·性能优化·监控
yunwei377 小时前
eBPF 实例教程:跟踪 Intel NPU 内核驱动操作
linux·后端·性能优化
运维行者_11 小时前
应用性能监控怎么选?从调用链到用户体验的五个能力维度
运维·服务器·数据库·人工智能·mysql·性能优化·应用性能监控
leeyi20 小时前
缓存同步之后,还要考虑没收到消息的节点
后端·性能优化·erlang
看浪的路人1 天前
第9讲:记忆系统的性能优化与基准测试——缓存策略、连接池、批量操作与压测方法论
缓存·性能优化
MoRanzhi12031 天前
第4篇 · 使用 PyQt5 实现 2048:平滑动画与性能优化
python·性能优化·qtimer·pyqt5·qpainter·gui动画·2048游戏
余槐i1 天前
yt-dlp 线程开到 16 反而更慢:1000 个视频的实测与限速原因
性能优化·ffmpeg·自动化·开发工具·yt-dlp
西红柿炖牛腩3541 天前
3D 模型压缩脚本又报错又配环境?换个不用维护的方案
javascript·3d·性能优化
打工仔折腾 AI1 天前
极空间部署Portainer实战:绕过Socket权限、解决9000端口冲突与固定内网访问
人工智能·后端·python·性能优化