相关概念

RT(response time)

什么是RT? RT就是指系统在接收到请求和做出相应这段时间跨度

但是值得一提的是RT的值越高,并不真的就能说明我们的系统的吞吐量就很高, 比如说,如果存在数据在网络中传输时出现了丢包的现象,传输的数据少了,速度就会增加, 但是这是事故,不是说我们的系统吞吐量高

此外,对不同的系统来说衡量的标准也不一样,对一个游戏软件来说,响应时间也就是常说的延迟. 在100ms以内,游戏体验感会很好,飙升到几秒钟,干脆就不要玩了, 但是对一个编译系统来说,编译一套源代码可能好几十分钟,人们也愿意等

java应用程序中的GC也会导致系统的总体RT飙升

Throughput 吞吐量

什么是吐吞量呢? 百度百科: 广义的吞吐量是: 单位时间内成功的传输数据的数量, 在我们进行压力测试得出的结果中, 可以将吞吐量理解成系统在单位时间内成功处理的请求的数量

一个系统的吞吐量和request对CPU的消耗,外部的接口以及IO等因素紧密相关,

比如一个web应用代码写的再漂亮,但是每次请求都会去查询数据库,并发数上来后,数据库就会占用大量的CPU负载,系统的IO飙升,甚至可能导致其他软件不得不等待mysql先执行完才能抢到CPU的时间分片. 系统的瓶颈积压到mysql这里,这个web应用的吞吐量一定不会很高

此外,一般我们都是这样描述吞吐量: 在并发数为xxx时,系统的吐吞量为yyy

并发用户数

它指的是系统可以承载的, 可以同时正常使用网站的用户数量, 这个指标似乎看起来可以比吞吐量更加直观反应系统的性能, 但是往往系统中的用户又有不同的行为, 比如未注册的, 在线的, 同时发送请求的等等, 简而言之, 可以考虑用在线的用户和同时发送请求的用户数作为性能指标, 把在线的用户当成性能指标更直观, 把同时发送请求的用户数量当成性能指标更准确

QPS (query per seconds)

每秒的查询率, 用来权衡服务器在规定的时间内处理的流量数

计算公式: QPS = req / sec , 即平均每秒的请求量

TPS (transition per seconds)

TPS (transaction per second)代表每秒执行的事务数量,可基于测试周期内完成的事务数量计算得出。例如,用户每分钟执行6个事务,TPS为6 / 60s = 0.10 TPS。同时我们会知道事务的响应时间(或节拍),以此例,60秒完成6个事务也同时代表每个事务的响应时间或节拍为10秒

PV和UV

PV访问量 (Page View) 每打开一次页面或者刷新一次页面 pv+1, 它反应的的网站的页面被访问的次数

UV访问数(Unique Visitor) 即, 独立访客的访问数, 换句话就是一台电脑算一个访客,

  • 通过QPS估算PV

公式1 : pv = QPS*3600*6

公式2: pv = QPS*3600*8

  • 根据QPS,PV估算服务器的数量

服务器的数量= 每天的总PV / 单台服务器的PV

原理: 每天80%的访问集中在了当前的20%的时间段, 这20%的时间就叫做峰值时间

峰值时间段 QPS = 总pv数*0.8 / 每天的秒数*0.2

参考: 博文1

参考:博文2

Jmeter

jmeter能做什么?

Jmeter也是apache的顶级项目, 通过jmeter我们可以测试静态和动态资源,web动态应用程序的性能, 还可以用来模拟服务器,服务器中,网络或者对象上的高负载, 测试他们的强度,以及不同负载下的总体性能

点击进入官网下载

使用

使用的思路: 在jmeter提供的可视化页面中,添加一个一个的指定的模块. 对我们的web项目中指定的接口进行压力测试,当然它不仅仅使用于发送http请求测试web项目的资源接口

添加什么模块呢?

  • 线程组: 也就是启动多少条线程对系统压测, 线程是否并发的启动
  • http的默认参数: 比如protocol host port 等等
  • 添加请求的参数/请求体/cookie等信息
  • 添加监听器接显示压测结果

实例:

添加线程组,每轮同时启动1000条线程对系统进行压测,重复1轮

添加默认使用的请求参数, 这个默认的请求参数并不要求强制添加,只是为了以后在具体的某个http请求压测模块不写请求参数时,使用这里面的默认参数

配置信息如下:

添加一个sample, 这个sample其实就是http请求, 一个具体的http请求, 用大白话说 ,我们想压测系统中的登录方法,就添加一个登录sample, 想压测系统中拉取个人信息的方法, 就添加一个 个人信息sample

sample详细配置

可以看到上图中我们可以添加request Param request body, 上传文件, 甚至可以添加一个模块添加请求的cookie模块

添加Listenner, 选择聚合报告 ,开始压测得到下面的结果,我们关注图中的吞吐量


支持使用配置文件中的数据当成压测的参数, 使用场景: 通过这个配置文件的配置,我们可以模拟出多用户并发访问系统的场景,下面配置中的每一行都是一个用户的信息,jmeter会自动读取这个配置文件中的每一行,使用这里面的信息进行压力测试,直到达到了用户指定的请求量才结束

编写配置文件

导入配置文件

使用配置文件,详细的配置细节我都标在了图片中

发送请求

Jmeter与压测相关概念的更多相关文章

  1. lesson5:利用jmeter来压测消息队列(activemq)

    本文讲述了利用jmeter来压测消息队列,其中消息队列采用apache的activemq,jmeter本身是支持符合jms标准消息队列的压测,由于jmeter的官方sampler配置比较复杂,本文直接 ...

  2. lesson4:利用jmeter来压测数据库

    本文讲述了如何利用jmeter来压测数据库,事例中选取了mysql作为测试数据库,其它的数据库也是一样,只需要更换驱动程序即可. 准备工作:a.mysql数据库安装,请自行百度:b.jdbc驱动包,请 ...

  3. jmeter 分布式压测(windows)

    单台压测机通常会遇到客户端瓶颈,受制于客户机的性能.可能由于网络带宽,CPU,内存的限制不能给到服务器足够的压力,这个时候你就需要用到分布式方案来解决客户机的瓶颈,压测的结果也会更加接近于真实情况. ...

  4. jmeter简单压测设置

    参数化 随机参数 时间参数 顺序自增函数  文件读取  直接引用 响应断言 用来查看sessionid 关联 关联引用 jmeter操作数据库 安装连接程序包 ip 端口号 哪个数据库 可以执行多条s ...

  5. Jmeter阶梯式压测

    https://www.cnblogs.com/Zfc-Cjk/p/11639219.html 什么是阶梯式压测? 阶梯式压测,就是对系统的压力呈现阶梯性增加的过程,每个阶段压力值都要增加一个数量值, ...

  6. jmeter接口压测的反思

    jmeter接口压测的反思 1.keepalive的坑:连接数满了,导致发起的请求失败. 2.token关联?是数据库取做参数化,还是随机数生成(需要改代码) 3.签名问题如何处理? 4.压测负载机端 ...

  7. 压力测试(八)-多节点JMeter分布式压测实战

    1.Jmeter4.0分布式压测准备工作 简介:讲解Linux服务器上jmeter进行分布式压测的相关准备工作 1.压测注意事项 the firewalls on the systems are tu ...

  8. JMeter分布式压测实战(2020年清明假期学习笔记)

    一.常用压力测试工具对比 简介:目前用的常用测试工具对比 1.loadrunner 性能稳定,压测结果及颗粒度大,可以自定义脚本进行压测,但是太过于重大,功能比较繁多. 2.Apache ab(单接口 ...

  9. Jmeter让压测随时做起来(转载)

    为什么要压测 这个问题问的其实挺没有必要的,做开发的同学应该都很清楚,压测的必要性,压力测试主要目的就是让我们在上线前能够了解到我们系统的承载能力,和当前.未来系统压力的提升情况,能够评估出当前系统的 ...

随机推荐

  1. Java虚拟机重点知识归纳总结

    一.     JVM内存分区 分为程序计数器.虚拟机栈.本地方法栈.Java堆.方法区5个区域 其中Java堆和方法区是线程共享的,虚拟机栈.本地方法栈.程序计数器是线程隔离的. 程序计数器: 1.可 ...

  2. 一次SSM项目记录

    1.控制台输入 mvn archetype:generate -DgroupId=com.yjdev -DartifactId=myzone -DarchetypeArtifactId=maven-a ...

  3. 【EasyCi】持续集成交付,一键式自动化部署系统,开箱即用

    前言 本人是一家互联网公司的java开发,由于公司初期公司未招运维人员,恰好我对linux比较熟悉,便在公司服务器搭建了一套Jenkins.Gitlab.Maven私服.Docker私服.Sonarq ...

  4. SpringBoot系列教程web篇之过滤器Filter使用指南扩展篇

    前面一篇博文介绍了在 SpringBoot 中使用 Filter 的两种使用方式,这里介绍另外一种直接将 Filter 当做 Spring 的 Bean 来使用的方式,并且在这种使用方式下,Filte ...

  5. .net core gRPC与IdentityServer4集成认证授权

    前言 随着.net core3.0的正式发布,gRPC服务被集成到了VS2019.本文主要演示如何对gRPC的服务进行认证授权. 分析 目前.net core使用最广的认证授权组件是基于OAuth2. ...

  6. Windows 服务程序(二)

    服务控制管理器 (SCM, Service Control Manager),它在系统启动时自动启动,其主要作用是维护和管理一张服务信息表. OpenSCManager() 介绍:功能:建立了一个到服 ...

  7. 你不知道的Canvas(一)

    Canvas基础 一.Canvas是什么 Canvas是一个可以使用脚本(通常为JavaScript来绘制图形的HTML) 元素.例如,它可以用于绘制图表.制作图片构图或者制作简单的动画,主要用来绘制 ...

  8. idea+springboot+mybatis逆向工程

    前提:使用idea开发,基于springboot.用到了mybatis的逆向工程 因为之前用eclipse开发ssm比较多,现在转idea 使用springboot 踩了一些坑,在这记录一下~ 注意事 ...

  9. hadoop-3.1.2启动httpfs

    最近有一个需求,要求使用httpfs读取数据,一开始看到httpfs这个词,第一感觉是不是多了个f,是不是https,后来百度一下,其实不然. httpfs其实是使用http协议访问hdfs文件系统: ...

  10. git jenkins SonarQube手动代码质检

    SonarQube代码质检:1.提交代码-->gitlab-->jenkins抓取-->sonarqube质量检测-->maven编译-->shell-->web集 ...