• 保姆级JAVA 性能指标、压测入门


    在这里插入图片描述

    一、何为压力测试

    1.1、 大白话解释

    • 性能压测是什么:就是考察当前软件硬件环境下,系统所能承受的最大负荷,并帮助找出系统的瓶颈所在。
    • 性能压测的目的:为了系统在线上的处理能力稳定性维持在一个标准范围内,做到知己知彼,百战不殆。还可以发现内存泄漏、并发与同步的问题。

    1.2、性能指标

    • RepsonseTime - RT:响应时间,用户从客户端发起一个请求开始计算,到客户端接收到服务端的响应结束,整个过程所耗费的时间。

    • Hits Per Second - HPS:用户每秒点击次数,也就是每秒向后台发送的请求次数。

    • QPS:系统每秒内处理查询的次数。

    • MaxRT:最大响应时间,指用户发出请求到服务端返回响应的最大时间。

    • MiniRT:最少响应时间,指用户发出请求到服务端返回响应的最少时间。

    • 90%响应时间:将所有用户的响应时间进行升序排序,取 90 % 的位置。

    • 性能测试关注点:

      • 吞吐量:每秒钟系统能处理的请求数、任务数。
      • 响应时间:服务处理一个请求或一个任务的耗时。
      • 错误率:一批请求中结果出过错的请求所占比例。

    二、Jmeter 压测工具

    1、Jmeter 工具

    • 下载和安装 Jmeter 工具

    下载地址:

    https://jmeter.apache.org/download_jmeter.cgi
    
    • 1

    我下载的版本是 apache-jmeter-5.3

    图片

    • 运行 JMeter 程序

    打开批处理文件:\apache-jmeter-5.3\bin\jmeter.bat。如下图所示:

    图片

    • 添加线程组,如下图所示:

    图片添加线程组

    • 1s 内启动 200 个线程,循环次数 100 次。2 w 个请求。如下图所示:

    图片

    • 测试 HTTP 请求,如下图所示:

    图片

    配置要测试的协议、服务器地址、端口号。配置信息如下:

    协议:使用 http 协议。

    服务器名称或 IP: www.baidu.com (只是为了演示)。

    端口号:80 端口。

    如下图所示:

    图片

    • 添加查看结果树、汇总报告和聚合报告。如下图所示:

    图片

    • 开始压力测试。

      点击播放按钮就开始启动了。注意启动之前需要先设置线程组的参数配置和 HTTP 请求的配置。如下图所示:

    图片

    • 查看每个请求结果,如下图所示:

    图片

    • 查看汇总报告。

      主要关心平均值和吞吐量。

      200 个线程,每个线程调用 100 次,总共 2 w 次,可以看到下图中表格中的样本列也是 2 w,请求所耗费的时间是 151 ms,吞吐量是 880 个请求每秒。如下图所示:

    图片

    • 查看聚合报告。

    主要看中位数和90%百分位,

    中位数是 59 ms,说明大部分请求的响应时间是 59 ms。

    90 % 的请求 都是在 271 ms 以内响应完成的。

    异常 0.41% 说明 2 w 个请求中有 82 个请求异常(20000 * 0.0041 = 82 )。

    吞吐量 880.2/sec 说明百度这个网站每秒能处理 880 个请求,性能一般(可能跟本地机器性能有关)。

    如下图所示:

    图片

    • 查看汇总图。

    查看汇总图时,需要先勾选想要查看的信息,如下图所示:

    图片

    然后查看图形汇总:

    图片

    可以看到勾选的几列在图表中是用不同颜色表示的,比如绿色的柱状条就是 90 % 百分位。

  • 相关阅读:
    shell中的printf实践:美颜的九九乘法表
    Alevel经济:供需理论的真题分析
    机器学习基础介绍
    MySQL主从复制&读写分离
    CIO如何规划企业BI分析指标体系 —— 从经营出发到绩效管理
    有多条业务线,mysql建多库多表比较好还是一个库多个表比较好呢?
    C语言程序执行时的硬件操作流程
    java基础之策略模式[26]
    FFmpeg源代码简单分析-其他-libavdevice的avdevice_register_all()
    C++ std::hash 获得字符串哈希值
  • 原文地址:https://blog.csdn.net/agonie201218/article/details/126221037