• 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请求,断言,结果监听器
    • 执行测试
    • 查看测试结果,分析测试结果

    测试案例移步至此

    结束

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

  • 相关阅读:
    Anaconda成功安装之后没有在菜单列和桌面显示图标
    企业移动设备管理(MDM)概述
    如何隐藏Selenium特征实现自动化网页采集
    【JVM学习笔记】JVM内存区域定义与内存结构
    LeetCode 刷题系列 -- 47. 全排列 II
    【 java 常用类】String、StringBuffer、StringBuilder三者之间的效率对比
    等待风起——京东.Vision项目参与实录分享
    mmdetection常见报错以及解决方案汇总
    asp毕业设计——基于C#+asp.net+sqlserver仪器设备管理系统设计与实现(毕业论文+程序源码)——仪器设备管理系统
    C语言 编译和链接
  • 原文地址:https://blog.csdn.net/2301_79691134/article/details/134210069