Jmeter 压测分析
原文由周小丽发表于TesterHome社区,点击原文链接可以和作者直接交流
如果 jmeter 达不到预期的性能指标,可查看压测机器的性能,是否因为内存、网络、cpu 占用导致的瓶颈。
一、端口不够用
压测的线程数过多时,或者线程没有及时释放,会导致 TCP/IP 连接端口已达到最大限制,jmeter 会报错
【报错信息】Non HTTP response code:java.net.BindException
【原因分析】windows 提供给 TCP/IP 连接的端口号是 1024-5000,并且要四分钟左右循环回收,这就导致我们短时间内频繁调用大量请求时,端口号被占满
【解决方案】修改系统的最大端口连接数
TCP 客户端和服务器连接时,客户端必须分配一个动态端口,默认情况下这个动态端口的分配范围为 1024-5000 ,也就是说默认情况下,客户端最多可以同时发起 3977 个 Socket 连接。我们可以修改如下注册表来调整这个动态端口的范围
[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Tcpip \Parameters]
MaxUserPort = 5000 (Default = 5000, Max = 65534)
二、线程数
【异常现象】大量请求出现连接失败,或者压测的错误率异常高,但服务器性能并没上去
【原因分析】线程数已达到瓶颈
【解决方案】循环创建线程,勾选 keep-alive(一般默认是勾选的),可复用线程,即一个 http 请求处理完之后,另外一个 http 请求会从这个连接走
三、内存不足
【异常现象】jmeter 安装目录下产生大量很大的.hprof 文件
【原因分析】这种.hprof 文件的产生是内存泄漏引起的
【解决方法】
windows 环境下,修改 jmeter.bat:
set HEAP=-Xms256m -Xmx256m
set NEW=-XX:NewSize=128m -XX:MaxNewSize=128m
改为:
set HEAP=-Xms256m -Xmx1024m
set NEW=-XX:NewSize=128m -XX:MaxNewSize=512m
PS:heap 最多设置为物理内存的一半,默认设置为 512M.如果 heap 超过物理内存的一半,可能运行 jmeter 会慢,甚至出现内存溢出,原因 java 比较吃内存,占 CPU.
四、建议
1、定期清理 jmeter 生成的日志文件:jmeter.log 和 jmeter-server.log(安装目录下)
2、压测线程数过大时,可采用分布式压测,以命令行执行方式,别使用 GUI 方式压测
TPS:事务数/秒 一个事务可能包含多个查询
QPS:查询数/秒(每秒响应的请求数)
QPS(TPS):每秒钟 request/事务 数量
并发数: 系统同时处理的 request/事务数
QPS(TPS)= 并发数/平均响应时间
比如说报错率在某一次中超过了预期,则该值时已经存在性能瓶颈;tps 达到某一值时,不升反降,则该值存在性能瓶颈;响应时间的值开始缓慢增加后来剧增,则达到性能瓶颈。
相关阅读:
Selenium 定位总结
以上是今天的分享,你学废了吗~
想学习更多干货知识和前沿技术?
想结识测试行业大咖和业界精英?
欢迎关注2022 MTSC大会(第十届中国互联网测试开发大会)>>>
Jmeter 压测分析相关推荐
- 软件性能测试分析与调优实践之路-JMeter对RPC服务的性能压测分析与调优-手稿节选
一.JMeter 如何通过自定义Sample来压测RPC服务 RPC(Remote Procedure Call)俗称远程过程调用,是常用的一种高效的服务调用方式,也是性能压测时经常遇到的一种服务调用 ...
- jmeter压测使用实践
环境搭建篇见https://blog.csdn.net/weixin_42498050/article/details/12847945 参考Jmter压测使用实践 jmeter压测实战总结 搭建 A ...
- jmeter压测指标
jmeter压测指标 压测前 主要参数 压测结果的分析 总结 压测前 压测前要明确压测功能和压测指标,一般需要确定的几个问题: 1.固定接口参数进行压测还是进行接口参数随机化压测? 2.要求支持多少并 ...
- Jmeter压测工具详解
Jmeter压测工具详解 1. Jmeter概述 1.1 Jmeter简介 1.2 Jmeter适用场景 2. Jmeter安装配置 2.1 下载安装 2.2 环境配置(可不配) 2.3 Jmeter ...
- 记录一次jmeter压测结果jtl文件过大(几十G)问题解决办法
记录一次jmeter压测结果jtl文件过大问题解决办法 一.背景 二.出现问题的原因 三.解决问题的办法 一.背景 正常jmeter压测(长时间的稳定性测试除外),一般jmeter产生的jtl文件都不 ...
- Jmeter 压测 http(s)
上一篇文章关于Jmeter介绍了Jmeter入门相关的知识.本文是实战篇,讲讲如何使用Jmeter对Http(s)进行压力测试. Http测试 测试一 首先,添加 "线程组" ...
- jmeter压测_简单七步,快速入门 JMeter原生压测
导入本地的 JMeter 原生脚本,即可快速发起一次压测. 前提条件 JMeter 脚本需要在本地调试成功. 请同时上传依赖的 CSV 或者 JAR 文件.CSV 文件的 File Name 只需要文 ...
- JMeter压测入门简单使用
JMeter压测入门简单使用. 下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-5.2. ...
- jmeter 压测duobbo接口,施压客户端自己把自己压死了
jmeter 压测duobbo接口,jmeter代码不合理,导致每执行一次请求,会调用一次消耗内存的实例化.导致越压越慢,请求发不出去.这个时候需要考虑修改代码了. 截图中,tps越来越少. 原来初始 ...
最新文章
- 解决python在eclipse运行正常在命令行里运行提示包导入错误
- 机器学习系列(一)感知器分类算法
- 网站“注册流程”如何“照顾用户”?
- OSX 挂载 NTFS 格式硬盘
- 关于ASCII字符的那些事儿
- JavaWeb之Servlet入门(一)
- Redis 中的事件驱动模型
- kindeditor不过滤标签属性
- 2022年PMP考试模拟题1(含答案解析)
- 质变的小米:从铁人三项到AIoT
- Java全栈开发---Java ERP系统开发:商业ERP(十三)CXF框架,物流BOS系统开发
- 直流可逆调速控制系统matlab,逻辑无环流直流可逆调速系统的Matlab仿真
- 【无机纳米材料科研制图——OriginLab 0206】Origin绘制X射线衍射XRD堆叠图
- 六度空间 c语言 【详解】
- 国内首批第三方支付牌照正式发放
- 数学方法002 | 利用恒等式证明不等式
- 每日一犬 · 哈瓦那犬
- SkyEye(一种软件模拟的系统开发平台)
- Python:实现scoring评分算法(附完整源码)
- 【IUI 2020】人在回路机器学习——Human-in-the-Loop AI in Government: A Case Study
热门文章
- python一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
- Python可以做什么?
- 初学前端,学习路线图必不可少,更有【95页】初级前端模块笔记!
- Python安装第三方库方法教程
- 金仓数据库 KingbaseES SQL 语言参考手册 (11. SQL语句:ABORT 到 ALTER INDEX)
- 小米 Redmi airDots 2耳机一只一直在亮白光怎么办
- TMC4671-LA完全集成伺服控制器电机驱动芯片带FOC控制
- Java高效操作MySQL
- C++ 命令行CMD 的控制与源代码
- 往数据库里面插入data数据