性能测试4【搬代码】

性能测试4与性能测试3最后的
三、性能瓶颈分析和性能调优
(1)基准测试
(2)负载测试
(3)压力测试
(4)浪涌测试
(5)容量测试
有关,需要结合看

性能瓶颈分析和性能调优

(1)基准测试
一般是单接口(单交易):使用一个用持续压测1min以上。
目的:获取单个接口没有压力的情况下各项性能指标,作为他场景的参考依据。
核心性能指标:并发用户数,响应时间(<1.5s),吞吐量(TPS、QPS、RPS),资源利用率(<80%),事务错误率(<0.1%)

(2)负载测试【一般在10分钟左右】
单交易负载测试:单个接口
多交易负载测试:多个接口、流程接口(流程负载测试、混合负载测试)

为什么做负载:就是为了得到下面两个指标
最佳并发用户数:资源利用率最高
最大并大用户数:并发用户数的上限,一旦超过上限,那么相应时间用户无法容忍5s,TPS直线下降

(3)压力测试【一般一小时为单位,如8、10、12、24h,有最长的压一个星期】
破坏性压力测试:(极限测试):最大并发用户数,可能会伴随客回复性测试(单机、集群)
稳定性压力测试:最佳并发用户数

(4)浪涌测试

(5)容量测试
第一种:TPS容量
如:测试被测系统是否能够每秒处理1000个事务
第二种:并发用户数容量
如:测试被测系统某一个功能是否能够支持1000个并发
第三种:在线用户数
如:测试被测系统能否支持10000个用户使用。(压力不大)
思考时间:吞吐量控制器
上面3中场景我们应该怎么去做,用例怎么去设计?
二、实战
常规的场景线程组就够了
线程组
1

线程数:虚拟用户数:100
Ramp-UP时间:10  10s加载100个用户,平均每秒加载10个
循环次数: 1 永久:一直跑
调度器:持续时间:10  如果超过这个时间还在一直跑,那么请使用CLI模式,也就是命令行模式【持续时间优先级大于循环次数】

2
3

不要使用GUI模式进行负载测试!,仅用于测试创建和测试调试。
对于负载测试,请使用CLI模式(以前是NON GUI):
jmeter-n-t[jmx文件]-l[结果文件]-e-o[web报表文件夹的路径]
&增加Java堆以满足您的测试要求:
修改jmeter批处理文件中的当前环境变量HEAP=-Xms1g-Xmx1g-XX:MaxMetaspaceSize=256m”
检查https://jmeter.apache.org/usermanual/best-practices.html

命令行:jmeter-n-t[jmx文件]-l[结果文件]-e-o[web报表文件夹的路径]

谁占的资源最多

场景一:
线程数10,Ramp-UP:1,循环次数:2,  每次占用10个资源内存, 1
线程数20,Ramp-UP:1,循环次数:1,  每次占用20个资源内存, 2 占的最多场景二:
线程数:1,Ramp-UP:1 循环次数:永久。持续时间:10s
问题:请问这里请求了多少次? 这里的请求和设置没有直接关系以上两个场景对应结论:
1.要吗就是固定循环次数,这个时候你设置持续时间没有意义
2.要吗就是循环次数设置为永久,然后固定持续时间

实战一:(秒杀场景知识没有这么多线程数,只有并发数)

场景9总和业务,从投产到入库50~100个用户并发数5的情况,持续运行1个消失持续运行,观察通过的事务和响应时间

依据上述场景,要求并发数=5,我们看一下下面做法是否正确:
线程数:50~100,Ramp-UP:1,循环次数:永久,持续时间:30s
4
从上图可以看到start Time没有同一时间发送5个请求所以是不对的。
如果想让同时并发,那么就要添加一个同步定时器如图所示:
5
6
7
8
聚合报告:
标准差主要是看:平均值和90%百分位之间的差由上图可以看出标准差还是很大的
吞吐量:就是TPS;算法:总样本数/总时间=吞吐量;52104/30=1,736.8。与吞吐量很相似
接收KB/Sec、发送KB/Sec其实就是吞吐率

如何看响应时间稳不稳定?
看标准差:在汇总报告中的标准误差
9
使用同步定时器其实是不对的,因为实际操作中,我们的线程是实时都会来的。并不是等待5个人齐了才发起的。
实战二:
以TPS(每秒完成的事务数)为10的压力持续压测30s?
10
11

实战三:
测试被测系统是否能够每秒处理1000个事务,TPS=1000

方案一:负载测试以1000个线程为基点,以100、200、300、400...1000,1100...个线程往上压,逐步递增,然后看TPS的性能拐点,有没有超过1000

12

	方案二:直接使用到达线程组(面向目标的场景)bzm - Arrivals Thread Group到达线程组:是基于TPS为目标的线程组TPS目标:设100,每秒处理100事务加载时间:达到目标想要多长时间:3加载次数:递增次数,加载几次:3持续运行多久:60

1413
如:测试被测系统某一个功能是否能够支持1000个并发

方案一:1000宪曾+同步定时器 得到核心的五个性能指标((1)基准测试中五个)方案二:
bzm - Arrivals Thread Group到达线程组:的目标是TPS目标bzm - Concurrency Thread Groupbzm-并发线程组:的目标是并发数目标
两种页面及其相似,但是目标不一样。
具体表现在聚合报告中,右上方的启用的线程多少不一样,TPS吞吐量不一样。
方案二使用的是并发线程组:一般使用一下3个监听器
jp@gc - Active Threads Over Time jp@gc-随时间推移的活动线程
jp@gc - Transactions per Second jp@gc-每秒事务数
jp@gc - Response Times Over Time jp@gc-随时间推移的响应时间

16

实战四:递增式场景
场景“比如你的线程数多一次性加载不完,实际中也是慢慢加载的,这种情况下就使用递增式。
一般使用的是递增式
15

实战五:极限场景【浪涌测试】
如:我们去12306抢票,比较集中,特别是节假日,
早上八点上班前有一波,
中午12点下班有一波,
中午吃完饭有一波,
下午下班后有一波
如图:
jp@gc - Ultimate Thread Group jp@gc-终极线程组
17

实战六:混合场景【流程压测】
假设100用户
登录100-加入购物车-支付-评论
18
18
19
20

可以看到样本中数量变化,当然吞吐量控制器使用的是百分比。
下面下单的吞吐量控制器使用 线程数,
线程组中只持续时间改成10,时间少一点
看一个结果
21
22
以上六个场景在什么时候用,都要了如指掌

最常见的问题:
内存泄漏
资源过高
线程死锁
数据库连接池不够
数据库死锁
SQL需要优化
TPS上不去
23
上图这些东西有些事需要在服务安装一些东西,结合性能测试123查看,结合influxdb查看

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

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

相关文章

【Linux系列】Fedora40安装VMware Workstation Pro报错

问题描述 由于Fedora 40使用的Linux内核是6.9,导致安装VMware Workstation Pro 时&#xff0c;安装依赖无法成功&#xff0c;具体报错如下 ..................CC [M] /tmp/modconfig-a8Fcf5/vmnet-only/smac.oCC [M] /tmp/modconfig-a8Fcf5/vmnet-only/vnetEvent.oCC [M] …

液体粒子计数器的原理及常见型号选择 lighthouse代理商北京中邦兴业

​液体颗粒计数用于测量液体样品中颗粒的大小和分布。通过用激光二极管照射液体样品并检测散射光来测量颗粒分布和尺寸。散射光的性质与粒子大小的大小有关。液体颗粒计数器可用于批量取样或在线&#xff08;连续监测&#xff09;应用&#xff0c;如水处理厂&#xff0c;或用于…

ADC位数、增益调制与参考电压

位数&#xff1a;12bit、10bit、8bit 一般就是对应的ADC值分别为&#xff1a;4095、1023、255&#xff0c;也就选用对应位数时ADC的最大值。 增益的作用 增益设置用于放大或缩小输入信号&#xff0c;使其适配到ADC的输入范围。增益设置可以通过配置SAADC的通道配置寄存器来实…

Vscode lanuch.json

Intro 使用launch.json 能够方便的运行需要传很多参数的代码文件 如下&#xff1a; import math import argparse # 1、导入argpase包def parse_args():parse argparse.ArgumentParser(descriptionCalculate cylinder volume) # 2、创建参数对象parse.add_argument(--rad…

怎么处理整合了shiro的应用的RPC接口鉴权问题

这篇文章分享一下&#xff1a;当一个服务提供者整合了shiro安全框架来实现权限访问控制时&#xff0c;服务消费者通过feign请求服务提供者的接口时的鉴权不通过问题。 问题描述 博主有一个项目pms&#xff08;权限管理系统&#xff09;&#xff0c;使用了shiro框架来实现鉴权功…

【免费可视化工具】智慧港口全景监测大屏引领行业变革

在传统的港口运营中&#xff0c;人们往往要面对繁琐的数据、复杂的流程和不确定的风险。但随着科技的发展&#xff0c;智慧港口全景监测大屏&#xff0c;集数据整合、实时监控、智能分析于一体&#xff0c;为港口运营提供了全新的解决方案。 今天要说的是山海鲸可视化搭建的智慧…

Android 通知组

一. 通知组简介 从 Android 7.0&#xff08;API 级别 24&#xff09;开始&#xff0c;您可以在一个组中显示相关通知。如下所示: 图 1. 收起&#xff08;顶部&#xff09;和展开&#xff08;底部&#xff09;的通知组。 注意 &#xff1a;如果应用发出 4 条或更多条通知且未…

Django(根据Models中模型类反向生成数据库表)—— python篇

一、数据库的配置 1、 django默认支持 sqlite&#xff0c;mysql, oracle,postgresql数据库。 sqlite&#xff1a;django默认使用sqlite的数据库&#xff0c;默认自带sqlite的数据库驱动 , 引擎名称&#xff1a;django.db.backends.sqlite3 mysql&#xff1a;引擎名称&#xff…

解决Transformer根本缺陷,所有大模型都能获得巨大改进

即使最强大的 LLM 也难以通过 token 索引来关注句子等概念&#xff0c;现在有办法了。 最近两天&#xff0c;马斯克和 LeCun 的口水战妥妥成为大家的看点。这两位 AI 圈的名人你来我往&#xff0c;在推特&#xff08;现为 X&#xff09;上相互拆对方台。 LeCun 在宣传自家最新论…

leetcode 动态规划(基础版)单词拆分

题目&#xff1a; 题解&#xff1a; 一种可行的dp做法是基于完全背包问题&#xff0c;将s看成是一个背包&#xff0c;wordDict看作是物品&#xff0c;然后往s中放入物品判断最终是否可以变为给定的s即可。这道题和上一题都用到了在dp如何枚举连续子串和状态表示&#xff1a;枚…

Golang 百题(实战快速掌握语法)_2

返回集合中满足指定条件的最后一个元素 本实验将实现判断给定集合中的元素是否符合&#xff0c;并返回符合的最后一个元素。 知识点 forfmt.Error 适合人群 本课程属于基础课程。需要用户掌握 Go 语言编程基础知识、计算机基础知识和 Linux 环境的基本用法。 许可证 内容…

潮玩手办盲盒前端项目模版的技术探索与应用案例

一、引言 在数字化时代&#xff0c;随着消费者对个性化和艺术化产品的需求日益增长&#xff0c;潮玩手办和盲盒市场逐渐崭露头角。为了满足这一市场需求&#xff0c;前端技术团队需要构建一个功能丰富、用户友好的在线平台。本文旨在探讨潮玩手办盲盒前端项目模版的技术实现&a…

FuTalk设计周刊-Vol.025

&#x1f525;&#x1f525;AI漫谈 热点捕手&#x1f525;&#x1f525; 1、耗时半年&#xff0c;实地调研&#xff01;泣血2万字&#xff0c;破除你的人工智能焦虑《2023最全AI商业落地调研报告》 链接https://www.bilibili.com/video/BV1YB4y1f7GE?share_sourcecopy_web &…

Vue3路由守卫的理解

官网:导航守卫 | Vue Router 目录 1.路由类型 1.1导航守卫 1.2路由独享 1.3组件内守卫 2.路由元信息 1.路由类型 1.1导航守卫 全局 :所有路由都会触发 router.beforeEach((to,from,next)>{}) router.afterEach((to,form,next)>{}) 1.2路由独享 路由表中的组件 be…

计算机公共课面试常见问题:线性代数篇

目录 1. 特征向量和特征值代表什么含义&#xff1f; 2. 矩阵的秩是什么&#xff1f;满秩代表什么&#xff1f;不满秩呢&#xff1f; 3. 奇异值分解是什么&#xff1f; …

2024上海初中生古诗文大会倒计时4个多月:真题示例和独家解析

现在距离2024年初中生古诗文大会还有4个多月时间&#xff0c;我们继续来看10道选择题真题和详细解析&#xff0c;以下题目截取自我独家制作的在线真题集&#xff0c;都是来自于历届真题&#xff0c;去重、合并后&#xff0c;每道题都有参考答案和解析。 为帮助孩子自测和练习&…

改变AI历史的Transformer是如何帮助LLM大模型工作的?看图解密Transformer原理,看不懂算我输!

在过去的几年里&#xff0c;大型语言模型(LLM)的出现&#xff0c;为长达数十年的智能机器构建的探索中带来了巨大的飞跃。 这项基于试图模拟人类大脑的研究技术&#xff0c;也在近几年催生了一个新领域——Generative AI 生成式人工智能&#xff0c;简单理解就是可以 通过模仿…

llama-3 本地化部署实验

国产大模型的API 有限&#xff0c;编写langchain 应用问题很多。使用openai 总是遇到网络问题&#xff0c;尝试使用ollama在本地运行llama-3。结果异常简单。效果不错。llama-3 的推理能力感觉比openai 的GPT-3.5 好。 Ollama 下载 官网&#xff1a;https://ollama.com/downl…

武汉凯迪正大—漆包圆线软化击穿试验仪 漆包线检测仪器

产品功能 武汉凯迪正大电气有限公司生产KDZD-JC软化击穿试验仪用于检测3.00mm及以下漆包线在热状态下漆膜软化后的绝缘性能&#xff0c;根据设定的预热温度、试验时间、仪器自动完成对试样的预加热、加负荷、加试验电压&#xff0c;达到试验时间或试样被击穿时即卸负荷&#x…

基于ARM的通用的Qt移植思路

文章目录 实验环境介绍一、确认Qt版本二、确认交叉编译工具链三、配置Qt3.1、修改qmake.conf3.2、创建autoConfig.sh配置文件 四、编译安装Qt五、移植Qt安装目录六、配置Qt creator6.1、配置qmake6.2、配置GCC编译器6.3、配置G编译器6.4、配置编译器套件6.5、创建应用 七、总结…