压力测试和JMeter使用分析

news2024/11/13 9:01:15

压力测试考察当前软硬件环境下系统所能承受的最大负荷并帮助找出系统瓶颈所在。

压测都 是为了系统在线上的处理能力和稳定性维持在一个标准范围内,做到心中有数。

使用压力测试,我们有希望找到很多种用其他测试方法更难发现的错误。

有两种错误类型是:内存泄漏,并发与同步。

有效的压力测试系统将应用以下这些关键条件:重复,并发,量级,随机变化。

 
1、性能指标  

响应时间(Response Time: RT)

响应时间指用户从客户端发起一个请求开始,到客户端接收到从服务器端返回的响 应结束,整个过程所耗费的时间。

HPS(Hits Per Second)

每秒点击次数,单位是次/秒。

TPS(Transaction per Second)

系统每秒处理交易数,单位是笔/秒。

QPS(Query per Second)

系统每秒处理查询次数,单位是次/秒。 对于互联网业务中,如果某些业务有且仅有一个请求连接,那么 TPS=QPS=HPS,一 般情况下用 TPS 来衡量整个业务流程,用 QPS 来衡量接口查询次数,用 HPS 来表 示对服务器单击请求。

无论 TPS、QPS、HPS,此指标是衡量系统处理能力非常重要的指标,越大越好,根据经验,一般情况下:

金融行业:1000TPS~50000TPS,不包括互联网化的活动

保险行业:100TPS~100000TPS,不包括互联网化的活动

制造行业:10TPS~5000TPS

互联网电子商务:10000TPS~1000000TPS

互联网中型网站:1000TPS~50000TPS

互联网小型网站:500TPS~10000TPS

最大响应时间(Max Response Time)

指用户发出请求或者指令到系统做出反应(响应) 的最大时间。

最少响应时间(Mininum ResponseTime)

指用户发出请求或者指令到系统做出反应(响 应)的最少时间。

 90%响应时间(90% Response Time)

是指所有用户的响应时间进行排序,第 90%的响应时间。

从外部看,性能测试主要关注如下三个指标

        吞吐量:每秒钟系统能够处理的请求数、任务数。

        响应时间:服务处理一个请求或一个任务的耗时。

        错误率:一批请求中结果出错的请求所占比例。 

 2、JMeter

 1、JMeter 安装

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

下载对应的压缩包,解压运行 jmeter.bat 即可

 2、JMeter 压测示例

添加线程组

 

线程组参数详解

线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里 也就是设置多少个线程数。

Ramp-Up Period(in seconds)准备时长:设置的虚拟用户数需要多长时间全部启动。如果 线程数为 10,准备时长为 2,那么需要 2 秒钟启动 10 个线程,也就是每秒钟启动 5 个 线程。

循环次数:每个线程发送请求的次数。如果线程数为 10,循环次数为 100,那么每个线 程发送 100 次请求。总请求数为 10*100=1000 。如果勾选了“永远”,那么所有线程会 一直发送请求,一到选择停止运行脚本。

Delay Thread creation until needed:直到需要时延迟线程的创建。

调度器:设置线程组启动的开始时间和结束时间(配置调度器时,需要勾选循环次数为 永远)

持续时间(秒):测试持续时间,会覆盖结束时间

启动延迟(秒):测试延迟启动时间,会覆盖启动时间

启动时间:测试启动时间,启动延迟会覆盖它。当启动时间已过,手动只需测试时当前 时间也会覆盖它。

结束时间:测试结束时间,持续时间会覆盖它。

添加 HTTP 请求 

添加监听器 

 

启动压测&查看分析结果 

 

结果分析

 有错误率同开发确认,确定是否允许错误的发生或者错误率允许在多大的范围内;

 Throughput 吞吐量每秒请求的数大于并发数,则可以慢慢的往上面增加;若在压测的机 器性能很好的情况下,出现吞吐量小于并发数,说明并发数不能再增加了,可以慢慢的 往下减,找到最佳的并发数;

 压测结束,登陆相应的 web 服务器查看 CPU 等性能指标,进行数据的分析;

 最大的 tps,不断的增加并发数,加到 tps 达到一定值开始出现下降,那么那个值就是 最大的 tps。

 最大的并发数:最大的并发数和最大的 tps 是不同的概率,一般不断增加并发数,达到 一个值后,服务器出现请求超时,则可认为该值为最大的并发数。

 压测过程出现性能瓶颈,若压力机任务管理器查看到的 cpu、网络和 cpu 都正常,未达到 90%以上,则可以说明服务器有问题,压力机没有问题。

 影响性能考虑点包括: 数据库、应用程序、中间件(tomact、Nginx)、网络和操作系统等方面

 首先考虑自己的应用属于 CPU 密集型还是 IO 密集型

感谢黑暗大帝赏脸 感谢黑暗大帝赏脸 感谢黑暗大帝赏脸 感谢黑暗大帝赏脸 感谢黑暗大帝赏脸  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/172701.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nginx简单梳理

Nginx总结 这里写目录标题Nginx总结**Nginx** **的简介**1、什么是 **nginx**2、正向代理3、反向代理4、负载均衡**5**、动静分离**Nginx** 的安装**Nginx** **的常用的命令****Nginx** 的配置文件**Nginx** **配置实例**-**反向代理实例** **1****Nginx** **配置实例**-**负载…

408—栈,队列和数组

stl里面的栈中没有清空的函数, 需要自己编写函数清空(while循环返回pop), 更常见的做法是重新定义一个栈,这样的时间复杂度就是O(1)栈的基本操作,出栈入栈判空和求栈的长度,和取栈顶元素以及清空出栈和取栈…

初学者C语言练习题-函数

二、函数 一个C程序有且只有一个主函数,即main函数。 C程序就是执行主函数里的代码,也可以说这个主函数就是C语言中的唯一入口。而main前面的int就是主函数的类型.printf()是格式输出函数,这里就记住它的功能就是在屏幕上输出指定的信息retur…

MATLAB-自动控制原理-控制系统的数学模型

目录 一、利用MATLAB进行数学模型转换 语法: 例(将传递函数写成零极点的形式): 例(将传递函数写成因子式的形式): 二、利用MATLAB求系统传递函数 串联等效: 并联等效&#xf…

uboot启动流程详细分析(基于i.m6ull)

uboot介绍 uboot就是一段引导程序,在加载系统内核之前,完成硬件初始化,内存映射,为后续内核的引导提供一个良好的环境。uboot是bootloader的一种,全称为universal boot loader。 一、uboot的makefile 1.1 makefile整…

ccc-sklearn-16-XGBoost(2)

文章目录XGBoost的其他参数选择弱评估器:参数boosterXGB的目标函数:参数objectiveXGB目标函数的求解参数化决策树ftf_tft​:参数alpha,lambda寻找最佳树结构:求解w和T寻找最佳分枝:结构分数之差让树停止生长…

C++ 函数重载:女友说的话到底是什么意思?

👑专栏内容:C学习笔记⛪个人主页:子夜的星的主页💕座右铭:日拱一卒,功不唐捐 目录一、前言二、函数重载1、函数重载概念2、函数重载的分类Ⅰ、参数类型不同Ⅱ、参数个数不同Ⅲ、参数类型顺序不同3、函数重载…

vs code,platform下载Arduino程序到ESP8266,并传送文件到flash

参考视频:https://www.bilibili.com/video/BV1yR4y1X72D/ 首先要知道 存储空间中有程序的存储地址和文件存储地址,可以对单独一个部分的写入不影响另一部分内容。 vs code 的platformIO插件进行程序和文件的上传 基本创建工程和程序可以参考&#x…

启明欣欣STM32开发板移植FreeRTOS

承接这篇文章,本篇讲述如何把FreeRTOS移植到启明欣欣STM32开发板里,比较简单,网上也有各种教程,本文也是参考其它文章,这里再记录一下。 一 搭建基础工程 启明欣欣STM32开发板上的MCU是STM32F407ZGT6,根据…

智能电视机安装App

每年的12月18日是世界电视机日,电视机诞生于1925年,最初是电子机械式电视机;到了1933年,诞生CRT电视,即黑白电视,它只有黑色或白色,看任何物品都是黑色或者白色。又过了20年,1953年彩…

Java之collection集合、常见数据结构、List和泛型

目录集合概述总结Collection集合的体系特点总结Collection集合常用APICollection集合的遍历方式方式一:迭代器总结方式二:foreach/增强for循环方式三:lambda表达式Collection集合存储自定义类型的对象总结常见数据结构数据结构概述、栈、队列…

【C++初阶】C++基础(一)

C是在C的基础之上,容纳进去了面向对象编程思想,并增加了许多有用的库,以及编程范式等。熟悉C语言之后,对C学习有一定的帮助,本文主要目标:1. 补充C语言语法的不足,以及C是如何对C语言设计不合理…

尚医通-首页显示-前端数据整合(二十六)

目录: (1)前台用户系统-首页显示-整合静态页面 (2)前台用户系统-首页显示-数据接口开发 (3)前端用户系统-首页显示-前端整合 (1)前台用户系统-首页显示-整合静态页面 …

代码随想录第七天(541、剑指05)

文章目录541. 反转字符串 II发现了三个基础知识的问题看答案改进剑指 Offer 05. 替换空格答案方法1答案方法2知识点一、二、三、总结541. 反转字符串 II 发现了三个基础知识的问题 第一个 这个题目发现了一个非常大的问题,有点不知道自己的Java基础到底有多少窟窿…

C++ 20 新特性 ranges 精讲

C 20 新特性 ranges 精讲 C20 中的 ranges 库使得使用 STL 更加舒适和强大。ranges 库中的算法是惰性的,可以直接在容器上工作,并且可以很容易地组合。简而言之,ranges 库的舒适性和强大性都源于它的函数思想。 在深入细节之前,…

程序员的7个被动收入途径——我如何每月赚 5万

每个人都想过时间和财富自由的生活,世界上有70亿人,但只有不到18000人能做到这一点,大多数人一生都在为钱工作。 研究表明,全世界65.8万富人至少有三种收入来源,而且都是被动收入。换句话说,大多数富人知道…

Create Realtime-chat app

Tech:React,Node.js,Socket.io,MongoDB styled-component ​​​​​​​ 目录 Base setup Register funcitonality Login funcitonality set Avatar/profile picture Chat container setup useEffect basic hook ChatHeader ChatInput ChatMessage Set socket an…

I.MX6ULL裸机开发笔记2:镜像文件

目录 一、boot ROM程序 二、镜像文件五要素 三、芯片手册 四、芯片手册数据解读 1、空偏移 2、IVT表 3、DCD表 一、boot ROM程序 选择内部启动方式,启动boot ROM程序 初始化时钟,外部DDR3从外部存储介质加载代码 boot ROM程序是芯片厂…

十五天学会Autodesk Inventor,看完这一系列就够了(十一),放样和螺旋扫掠(绘弹簧)

众所周知,Autocad是一款用于二维绘图、详细绘制、设计文档和基本三维设计,现已经成为国际上广为流行的绘图工具。Autodesk Inventor软件也是美国AutoDesk公司推出的三维可视化实体模拟软件。因为很多人都熟悉Autocad,所以再学习Inventor&…

Redis缓存数据 | 黑马点评

目录 一、什么是缓存 二、添加Redis缓存操作 三、缓存更新策略 缓存的更新策略 ​编辑 业务场景 主动更新策略 案例 四、缓存穿透 1、是什么 2、解决方案 (1)缓存空对象 (2)布隆过滤器 (3)其…