meter报OOM错误,如何解决?

根据在之前的压测过程碰到的问题,今天稍微总结总结,以后方便自己查找。

一、单台Mac进行压测时候,压测客户端Jmeter启动超过2000个线程,Jmeter报OOM错误,如何解决?

解答:单台Mac配置内存为8G,可用内存最大为3.5G左右,启动一个线程将近需要1M内存,2000个线程,需要大概2G左右的内存;然后启动Jmeter,本身需要将近400M的内存,接着在运行过程中,Jmeter又使用了Respoonse Time、TPS、Thread等等的计数器也会占用额外内存;最后,Jmeter运行不到2分钟,导致Jmeter闪退,然后Mac OS重启,原因就是系统出现了Out Of Memory的错误。

建议:单台压测机器,启动线程不超过1000个,推荐500个左右,这样客户端性能比较好;如果要压测超过1000个线程,建议分成2台Mac机器进行压测,超过2000个,分成3台Mac机器压测,以此类推。

二、使用断言,是否特别消耗系统资源?

解答:使用Response Assertion 和Json Assertion这两种断言方式,不是太占用系统CPU资源;但是如果使用正则表达式进行断言,就会对系统的CPU有一定的消耗。这个好像使用SQL语句一样,使用Like进行查找结果,是模糊匹配,所以需要额外资源进行计算;如果使用x=y的条件,查询速度就会快很多。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:1150305204【暗号:csdn000】

三、当压测线程500左右,没有使用集合点,TPS一直无法上到200以上,并且Error%率很低,不超过1%的错误率?

解答:Jmeter在脚本中,使用集合点-synchronizing point,计算TPS的算法跟脚本中没有使用集合点的TPS算法有区别;所以,当脚本中使用集合点,那么被集合点压测的接口TPS就会比没有被集合点压测接口的TPS高;所以,这个是设置的问题,不是服务器或者应用的问题。

四、页面性能需要压测吗?场景:多人反复登陆/退出/抢红包/多人提问/多人弹幕......

解答:其实页面的请求也是通过前端接口传递到后端接口,然后通过后端的接口拿到需要的数据,最后传给前端,让数据在前端页面展示;如果后端的接口响应慢,就必然会导致前端展示数据的速度慢;如果后端的响应速度快,前端的展示数据的速度仍然很慢,那么就跟客户端的机器CPU/内存/浏览器等配置相关,需要单独分析,不能一概而论。

建议:这个问题,一般都是前端的开发工程师提出来的,其实,前端的逻辑相对简单,主要是数据展示功能,数据的加工工程,都是放在后端来完成的;正常情况下,如果后端的接口响应很多,前端的接口响应速度应该不会慢。页面的展示功能,其实可以通过“分页加载”、“延迟加载”、“查询缓存而不是数据库获取数据”等等手段,都可以提高页面的响应速度,我就不班门弄斧了。

五、当使用Non-GUI模式运行Jmeter时候,TPS可以达到500-600左右,这个是啥原因?

解答:当压测客户端,使用命令行模式运行脚本,不是采用GUI模式运行脚本;如果GUI模式压测的结果是300TPS左右,当切换到命令行模式后,压测的结果是600TPS左右;这个一般是服务器的配置不一样、服务器的访问量不一样等等原因。正常来说,使用命令行运行脚本,压测客户端使用自己的资源会更少,但是,不会影响TPS的指标,因为,你压测的是服务器,不是你机器本身,跟客户端的资源没有半点关系。

六、并发线程数和并发用户数,是同一概念吗?

解答:对于loadrunner和jmeter之类常规性能测试工具来说,答案是肯定的;大家可以设置线程数100,循环1次,最后,总的请求数一定是:100。但是对于gatling比较特殊,用的是协程,比线程更小的单位,所以,并发线程数和并发用户数不能直接画等号。

七、TPS和QPS的区别是什么?

解答:TPS是每秒钟处理完的事务次数,一般TPS是对整个系统来讲的。一个应用系统1s能完成多少事务处理,一个事务在分布式处理中,可能会对应多个请求。每秒钟处理完请求的次数;注意这里是处理完。具体是指发出请求到服务器处理完成功返回结果。

对于衡量单个接口服务的处理能力,用QPS比较多。

总结

最后,真心诚意地对每一个认真阅读我文章的人表示感激,你们的点赞、收藏和关注给予了我巨大的动力和勇气。在这个世界上,我们常常在奉献与回报之间徘徊,但我相信,礼尚往来并不仅仅是物质交换,而是一种情感的传递。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

log4j2漏洞综合利用_CVE-2021-44228_CNVD-2021-95919

1.漏洞利用 1.1.rmi 利用 1、在检测到目标存在 log4j2 漏洞后,确定漏洞参数,尝试接受目标 rmi 请求。 成功接收到请求。 出现 JRMIK 字样即代表可接受 RMI 请求。 2、漏洞利用。 使用JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar执行命令&#xff0…

AI大模型预先学习笔记二:prompt提问大模型、langchain使用大模型框架、fine tune微调大模型

文章目录 一、Prompt Engineering(怎么去提问大模型)1)环境准备2)交互代码的参数备注3)交互代码 二、LangChain(一个框架去使用大模型)1)LangChain核心介绍:I/O模块、数据…

debian 11 arm64 aarch64 D2000 平台编译 box86 box64 笔记

参考资料 https://github.com/ptitSeb/box86/blob/master/docs/COMPILE.md 源码地址 GitHub - ptitSeb/box86: Box86 - Linux Userspace x86 Emulator with a twist, targeted at ARM Linux devices deb在线源地址(打不开): Itais box86…

宿舍管理系统的设计与实现:基于Spring Boot、Java、Vue.js和MySQL的完整解决方案

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

vue前端开发自学,祖孙多层级组件嵌套关系数据传输

vue前端开发自学,祖孙多层级组件嵌套关系数据传输!官方提供了一个解决方案,就是,在根组件内使用provide,哪个子孙组件想调用这个数据,就可以inject接收就行了。虽然是方便了,但是这个有点要求,就是只能自上…

05-HAL库硬件SPI点亮板载LCD屏幕

05-HAL库硬件SPI点亮板载LCD屏幕 1、本节内容介绍 1.1、HAL库硬件SPI 在cubemx中的配置及注意事项;1.2、HAL库SPI详解与结构介绍;1.3、实现硬件SPI驱动板载ST7789显示屏,240*240像素; 源码地址:https://gitee.com/MR_Wyf/hal-cubemx-rt-thread/tree/h…

李宏毅LLM——机器学习基础知识

文章目录 机器学习基本概念生成式学习 Structured Learning总结 机器学习基本概念 机器学习 机器自动找出一种函数 根据函数的不同,可以分为回归问题(输出数值)和分类问题(输出类别,选择题) 生成式学习 …

【征服redis1】基础数据类型详解和应用案例

博客计划 ,我们从redis开始,主要是因为这一块内容的重要性不亚于数据库,但是很多人往往对redis的问题感到陌生,所以我们先来研究一下。 本篇,我们先看一下redis的基础数据类型详解和应用案例。 1.redis概述 以mysql为…

用julia演示蝴蝶效应:洛伦兹吸引子

文章目录 Lorentz吸引子julia绘图关闭抗锯齿 蝴蝶效应的名字来源于蝴蝶扇动翅膀的动作,虽然这个动作微小,但可能会在数周后引起飓风等极端天气的发生。这种现象表明,微小的变化可能会被放大并产生非线性的结果。这个概念最早由美国气象学家爱…

Jmeter接口测试(2024版)

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,薪资嘎嘎涨 Jmeter介绍&测试准备: Jmeter介绍:Jmeter是软件行业里面比较常用…

控制网页的灰度显示

1.代码&#xff1a; 普通网页 <style>html {filter: grayscale(100%);}</style> 或是:webkit内核浏览器写法 <style>html {-webkit-filter: grayscale(100%)}</style> 2.说明&#xff1a; grayscale(amount) :进行灰度转换。 amount转换值的大小&…

MySQL系列之数据导入导出

前言 大数据与云计算作为当今时代&#xff0c;数据要素发展的“动力引擎”&#xff0c;已经走进了社会生活的方方方面。而背后承载的云服务或数据服务的高效运转&#xff0c;起了决定作用。 作为数据存储的重要工具&#xff0c;数据库的品类和特性也日新月异。从树型、网络型…

数据库开发工具:Navicat Premium 16 (Win/Mac)中文激活版

Navicat Premium 16 是一款强大的数据库管理工具&#xff0c;旨在帮助用户更轻松地管理和维护各种数据库类型。 以下是关于 Navicat Premium 16 的详细介绍&#xff1a; 数据库支持&#xff1a;Navicat Premium 16 支持多种数据库类型&#xff0c;包括 MySQL、PostgreSQL、SQLi…

C++核心编程之类和对象---C++面向对象的三大特性--多态

目录 一、多态 1. 多态的概念 2.多态的分类&#xff1a; 1. 静态多态&#xff1a; 2. 动态多态&#xff1a; 3.静态多态和动态多态的区别&#xff1a; 4.动态多态需要满足的条件&#xff1a; 4.1重写的概念&#xff1a; 4.2动态多态的调用&#xff1a; 二、多态 三、多…

Git 使用与问题记录 二(公司快速上手版)

写在前面 记录自己学习的内容&#xff0c;方便后面忘记的时候查看。给像我一样的新手提供一点参考 正文 上一章已经安装好了Git&#xff0c;如何使用呢。我这里会分享两种办法&#xff0c;第一种是在VS2022中克隆代码&#xff0c;修改和提交&#xff1b;第二种是用命令提交。…

Linux Centos7静默安装(非图形安装)Oracle RAC 11gR2(Oracle RAC 11.2.0.4)

Oracle RAC (全称Oracle Real Application Clusters &#xff09;静默安装&#xff08;非图形安装&#xff09;教程。 由于这篇文章花费了我太多时间&#xff0c;设置了仅粉丝可见&#xff0c;见谅。 环境说明&#xff1a; 虚拟机软件&#xff1a;VMware Workstation 16 Pro…

Java IO流

目录 一.字符集 二.JavaIo流体系 三.如何提升读取和写入速度&#xff1f; 四.文件读取乱码问题 一.字符集 ASCII:一个字节存储&#xff0c;首尾是0 GBK: 两个字节存储&#xff0c;首位是1 Unicode:统一码&#xff0c;4个字节存储&#xff0c;容纳世界所有文字 UTF-8:Un…

acwing 图的深度搜索DFS

写目录 邻接表的构建邻接表DFSAcWing 846. 树的重心无向图 pat 1034 Head of a Gang有向图的深度搜索&#xff0c;各连通块分别搜索 邻接表的构建 邻接表DFS const int N 1e5 10, M 2*N; int h[N], e[M], ne[M]; // h[N]: 顶点Ni的第一个连接点 bool visited[M]; …

机器学习周报第27周

目录 摘要Abstract一、文献阅读 摘要 本周阅读了一篇混沌时间序列预测的论文&#xff0c;论文模型主要使用的是时间卷积网络&#xff08;Temporal Convolutional Network&#xff0c;TCN&#xff09;、LSTM以及GRU。在数据集方面除了使用现实的时间序列数据外&#xff0c;还通…

接口防刷方案

1、前言 本文为描述通过Interceptor以及Redis实现接口访问防刷Demo 2、原理 通过ip地址uri拼接用以作为访问者访问接口区分 通过在Interceptor中拦截请求&#xff0c;从Redis中统计用户访问接口次数从而达到接口防刷目的 如下图所示 3、案例工程 项目地址&#xff1a; htt…