原文由周小丽发表于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 压测分析相关推荐

  1. 软件性能测试分析与调优实践之路-JMeter对RPC服务的性能压测分析与调优-手稿节选

    一.JMeter 如何通过自定义Sample来压测RPC服务 RPC(Remote Procedure Call)俗称远程过程调用,是常用的一种高效的服务调用方式,也是性能压测时经常遇到的一种服务调用 ...

  2. jmeter压测使用实践

    环境搭建篇见https://blog.csdn.net/weixin_42498050/article/details/12847945 参考Jmter压测使用实践 jmeter压测实战总结 搭建 A ...

  3. jmeter压测指标

    jmeter压测指标 压测前 主要参数 压测结果的分析 总结 压测前 压测前要明确压测功能和压测指标,一般需要确定的几个问题: 1.固定接口参数进行压测还是进行接口参数随机化压测? 2.要求支持多少并 ...

  4. Jmeter压测工具详解

    Jmeter压测工具详解 1. Jmeter概述 1.1 Jmeter简介 1.2 Jmeter适用场景 2. Jmeter安装配置 2.1 下载安装 2.2 环境配置(可不配) 2.3 Jmeter ...

  5. 记录一次jmeter压测结果jtl文件过大(几十G)问题解决办法

    记录一次jmeter压测结果jtl文件过大问题解决办法 一.背景 二.出现问题的原因 三.解决问题的办法 一.背景 正常jmeter压测(长时间的稳定性测试除外),一般jmeter产生的jtl文件都不 ...

  6. Jmeter 压测 http(s)

      上一篇文章关于Jmeter介绍了Jmeter入门相关的知识.本文是实战篇,讲讲如何使用Jmeter对Http(s)进行压力测试. Http测试 测试一   首先,添加 "线程组" ...

  7. jmeter压测_简单七步,快速入门 JMeter原生压测

    导入本地的 JMeter 原生脚本,即可快速发起一次压测. 前提条件 JMeter 脚本需要在本地调试成功. 请同时上传依赖的 CSV 或者 JAR 文件.CSV 文件的 File Name 只需要文 ...

  8. JMeter压测入门简单使用

    JMeter压测入门简单使用. 下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-5.2. ...

  9. jmeter 压测duobbo接口,施压客户端自己把自己压死了

    jmeter 压测duobbo接口,jmeter代码不合理,导致每执行一次请求,会调用一次消耗内存的实例化.导致越压越慢,请求发不出去.这个时候需要考虑修改代码了. 截图中,tps越来越少. 原来初始 ...

最新文章

  1. 解决python在eclipse运行正常在命令行里运行提示包导入错误
  2. 机器学习系列(一)感知器分类算法
  3. 网站“注册流程”如何“照顾用户”?
  4. OSX 挂载 NTFS 格式硬盘
  5. 关于ASCII字符的那些事儿
  6. JavaWeb之Servlet入门(一)
  7. Redis 中的事件驱动模型
  8. kindeditor不过滤标签属性
  9. 2022年PMP考试模拟题1(含答案解析)
  10. 质变的小米:从铁人三项到AIoT
  11. Java全栈开发---Java ERP系统开发:商业ERP(十三)CXF框架,物流BOS系统开发
  12. 直流可逆调速控制系统matlab,逻辑无环流直流可逆调速系统的Matlab仿真
  13. 【无机纳米材料科研制图——OriginLab 0206】Origin绘制X射线衍射XRD堆叠图
  14. 六度空间 c语言 【详解】
  15. 国内首批第三方支付牌照正式发放
  16. 数学方法002 | 利用恒等式证明不等式
  17. 每日一犬 · 哈瓦那犬
  18. SkyEye(一种软件模拟的系统开发平台)
  19. Python:实现scoring评分算法(附完整源码)
  20. 【IUI 2020】人在回路机器学习——Human-in-the-Loop AI in Government: A Case Study

热门文章

  1. python一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
  2. Python可以做什么?
  3. 初学前端,学习路线图必不可少,更有【95页】初级前端模块笔记!
  4. Python安装第三方库方法教程
  5. 金仓数据库 KingbaseES SQL 语言参考手册 (11. SQL语句:ABORT 到 ALTER INDEX)
  6. 小米 Redmi airDots 2耳机一只一直在亮白光怎么办
  7. TMC4671-LA完全集成伺服控制器电机驱动芯片带FOC控制
  8. Java高效操作MySQL
  9. C++ 命令行CMD 的控制与源代码
  10. 往数据库里面插入data数据