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比较多。
总结
最后,真心诚意地对每一个认真阅读我文章的人表示感激,你们的点赞、收藏和关注给予了我巨大的动力和勇气。在这个世界上,我们常常在奉献与回报之间徘徊,但我相信,礼尚往来并不仅仅是物质交换,而是一种情感的传递。
相关文章:
meter报OOM错误,如何解决?
根据在之前的压测过程碰到的问题,今天稍微总结总结,以后方便自己查找。 一、单台Mac进行压测时候,压测客户端Jmeter启动超过2000个线程,Jmeter报OOM错误,如何解决? 解答:单台Mac配置内存为8G&…...
第二百六十九回
文章目录 概念介绍设置方法示例代码内容总结 我们在上一章回中介绍了Card Widget相关的内容,本章回中将介绍国际化设置.闲话休提,让我们一起Talk Flutter吧。 概念介绍 我们在这里说的国际化设置是指在App设置相关操作,这样可以让不同国家的…...
未来能源转型之路:2023年第十三届中国国际储能大会启示录
在2023年第十三届中国国际储能大会上,全球各地的能源专家、学者和企业代表齐聚一堂,共同探讨了储能技术在推动能源转型中的重要作用。对于我们普通人来说,从这场大会中可以学到什么呢? 一、储能技术是未来能源发展的关键 随着可再…...
rviz可视化机械臂(python)
一、准备的东西 一个机械臂的urdf 规划的路径点 二、launch文件的撰写 1.初始化 <?xml version"1.0" encoding"utf-8"?> <launch><param name"robot_description" textfile"机械臂.urdf" /><node name&qu…...
《设计模式的艺术》笔记 - 享元模式
介绍 享元模式运用共享技术有效地支持大量细粒度对象的复用。系统只使用少量的对象,而这些对象都很相似,状态变化很小,可以实现对象的多次复用。由于享元模式要求能够共享的对象必须是细粒度对象,因此它又称为轻量级模式ÿ…...
ubuntu系统(10):使用samba共享linux主机中文件
目录 一、samba安装步骤 1、Linux主机端操作 (1)安装sabma (2)修改samba配置文件 (3)为user_name用户设置samba访问的密码 (4)重启samba服务 2、Windows端 二、使用 1、代码…...
数据集成时表模型同步方法解析
01 背景介绍 数据治理的第一步,也是数据中台的一个基础功能 — 即将来自各类业务数据源的数据,同步集成至中台 ODS 层。业务数据源多种多样,单单可能涉及到的主流关系型数据库就有近十种。功能更加全面的数据中台通常还具有对接非关系型数据…...
彻底解决charles抓包https乱码的问题
最近做js逆向,听说charles比浏览器抓包更好用,结果发现全是乱码,根本没法用。 然后查询网上水文:全部都是装证书,根本没用! 最后终于找到解决办法,在这里记录一下: 乱码的根本原因…...
Towards Robust Blind Face Restoration with Codebook Lookup Transformer
Towards Real World Blind Face Restoration with Generative Facial Prior 这个projec相对codeformer已经是老一些的了,CodeFormer paper说自己的效果比这个更好。 有看了这个视频,它借用了R-ESRGAN 4x 和 GFPGAN 50%,既保留了一些人物特征…...
flutter3使用dio库发送FormData数据格式时候的坑,和get库冲突解决办法
问题描述 问题1:当你使用FormData.from(Flutter3直接不能用)的时候,可能会提示没有这个方法,或者使用FormData.fromMap(flutter3的dio支持)的时候也提示没有,这时候可能就是和get库里面的Formdata冲突了 问题1:The me…...
matlab读取pwm波数据,不用timer的方法,这里可以参考。Matlab/Simulink之STM32开发-编码器测速
这里提供了一个不用timer的方法,可以参考: https://blog.csdn.net/weixin_36967309/article/details/88699830 Matlab/Simulink之STM32开发-编码器测速...
使用 Python 创造你自己的计算机游戏(游戏编程快速上手)第四版:第十九章到第二十一章
十九、碰撞检测 原文:inventwithpython.com/invent4thed/chapter19.html 译者:飞龙 协议:CC BY-NC-SA 4.0 碰撞检测涉及确定屏幕上的两个物体何时相互接触(即发生碰撞)。碰撞检测对于游戏非常有用。例如,如…...
Multimodal Multitask Learning with a Unified Transformer
SNLI-VE dataset,natural language understanding tasks:MNLI,QNLI,QQP,SST-2 截止到发文时间的issue数,多吓人呐,不建议复现...
c指针和字符数组初学者比较好的例子
本练习的主题:一个对象的指针可以修改这个对象的内容; 注:对象是指一个固定大小的内存块。 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <stdlib.h> int getMem(char **p1,int *m…...
微信原生小程序上传与识别以及监听多个checkbox事件打开pdf
1.点击上传并识别 组件样式<van-field border"{{ false }}" placeholder"请输入银行卡卡号" model:value"{{bankNo}}" label"卡号"><van-icon bindtap"handleChooseImg" slot"right-icon" name"sca…...
关于C#中Monitor的wait/pulse的理解
wait:表示释放对象上的锁并阻止当前线程,直到它重新获取该锁。 pulse:表示通知等待队列中的线程锁定对象状态的更改。 当线程调用 Wait 时,它会释放对象上的锁并进入对象的等待队列。 对象的就绪队列中的下一个线程 (如果有一个…...
LeetCode 2894. 分类求和并作差
给你两个正整数 n 和 m 。 现定义两个整数 num1 和 num2 ,如下所示: num1:范围 [1, n] 内所有 无法被 m 整除 的整数之和。 num2:范围 [1, n] 内所有 能够被 m 整除 的整数之和。 返回整数 num1 - num2 。 示例 1: …...
PLSQL 把多个字段转为json格式
PLSQL 把多个字段转为json格式 sql Select cc.bm, cc.xm, json_arrayagg(cc.hb) jgFrom (Select aa.bm, aa.xm, json_object(aa.ksbh, aa.wjmc) hbFrom (Select 001 bm, 老六 xm, 0001 ksbh, 文具盒 wjmcFrom dual tUnion AllSelect 001 bm, 老六 xm, 0002 ksbh, 毛笔 wjmcFr…...
国内环境 GitHub 拉取仓库速度慢的缓解方案
第一步: 浏览器打开如下两个网址,找到对应 IP 地址: GitHub.com - GitHub: Lets build from here GitHubgithub.global.ssl.fastly.net 假设对应 IP 地址分别为 140.82.xx.xxx 和 199.232.yy.yyy 第二步: 编辑 hosts 文件 sud…...
设计模式⑥ :访问数据结构
文章目录 一、前言二、Visitor 模式1. 介绍2. 应用3. 总结 三、Chain of Responsibility 模式1. 介绍2. 应用3. 总结 参考内容 一、前言 有时候不想动脑子,就懒得看源码又不像浪费时间所以会看看书,但是又记不住,所以决定开始写"抄书&q…...
GitHub Desktop汉化神器:3分钟让英文界面变中文
GitHub Desktop汉化神器:3分钟让英文界面变中文 【免费下载链接】GitHubDesktop2Chinese GithubDesktop语言本地化(汉化)工具 【GitHub桌面客户端中文汉化】 项目地址: https://gitcode.com/gh_mirrors/gi/GitHubDesktop2Chinese 还在为GitHub Desktop的英文…...
开发 AI 应用时如何利用 Taotoken 实现模型的热切换与降级
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 开发 AI 应用时如何利用 Taotoken 实现模型的热切换与降级 在构建面向生产环境的 AI 应用时,服务的稳定性是核心考量之…...
收藏! Harness 让你轻松驾驭大模型,小白也能写出高效代码
本文探讨了 AI 编程 Agent 的核心要素,强调 Harness(工具、流程和反馈系统)的重要性远超单纯依赖模型。通过实例说明,优化编辑格式等 Harness 设计可显著提升 Agent 成功率。文章提出,为 AI 准备更好的工作台ÿ…...
谷歌 I/O 2026 炸场:Gemini 3.5 Flash 震撼发布!反超 3.1 Pro,开启“全自动 Agent 狂飙”时代
在刚刚开幕的 Google I/O 2026 开发者大会上,谷歌正式扔下了一颗重磅炸弹:发布全新 Gemini 3.5 系列 的首款旗舰轻量模型 —— Gemini 3.5 Flash。 这次的发布极为硬核,谷歌彻底打破了我们对 “Flash 是低配版/轻量版” 的固有认知。根据 Dee…...
STM32G474的HRTIM驱动DAC:你的锯齿波‘毛刺’和失真,可能是这两个寄存器配置反了
STM32G474的HRTIM驱动DAC:锯齿波失真问题深度解析与优化方案 在精密模拟电路设计中,STM32G474系列微控制器凭借其高性能HRTIM(高分辨率定时器)和DAC(数模转换器)的组合,成为生成高精度波形的重要…...
RA6M3 HMI开发板SDHI接口与SD卡存储性能深度测评
1. 项目概述:从一块开发板到人机交互界面的探索最近在做一个工业现场数据监控终端的原型,核心需求是在一块屏幕上实时显示传感器数据、设备状态,并且能通过触摸屏进行简单的参数设置。选型的时候,瑞萨电子的RA6M3 HMI Board进入了…...
告别B站界面混乱:3步找回经典小电视播放器
告别B站界面混乱:3步找回经典小电视播放器 【免费下载链接】Bilibili-Old 恢复旧版Bilibili页面,为了那些念旧的人。 项目地址: https://gitcode.com/gh_mirrors/bi/Bilibili-Old 你是否对B站新版界面感到无所适从?那些复杂的推荐算法…...
告别环境报错!Windows下ESP8266开发环境保姆级搭建指南(含MSYS2、Python包避坑)
Windows下ESP8266开发环境零失败搭建全攻略 第一次接触ESP8266开发时,最令人头疼的莫过于环境配置。明明按照官方文档一步步操作,却总在某个环节卡住——Python包安装失败、工具链不兼容、串口识别异常...这些问题消耗了开发者大量时间。本文将彻底解决…...
深入解析Godot PCK解包技术:从二进制黑盒到可编辑资源的完整指南
深入解析Godot PCK解包技术:从二进制黑盒到可编辑资源的完整指南 【免费下载链接】godot-unpacker godot .pck unpacker 项目地址: https://gitcode.com/gh_mirrors/go/godot-unpacker 还在为Godot引擎生成的PCK文件无法访问而烦恼吗?想要深入分析…...
ESP32-C3 I²S实战:手把手教你驱动ES8311音频编解码器实现回声消除
ESP32-C3与ES8311音频系统实战:从硬件连接到回声消除算法优化 在智能语音交互设备、会议系统和便携式录音设备中,音频处理能力已成为核心需求。ESP32-C3作为一款高性价比的Wi-Fi/BLE双模芯片,其内置的IS接口为音频应用提供了专业级数字音频传…...
