关于jmeter:JMeter压测时跑一会聚合报告就不动了

67次阅读

共计 2072 个字符,预计需要花费 6 分钟才能阅读完成。

最艰难的事件就是意识本人!
集体网站,欢送拜访!

前言:

最近,应用 JMeter 对我的项目进行压力测试;起初,JMeter 设置的并发线程数只是 10 个,而后在进行压力测试时,发现跑了一会后 JMeter 聚合报告 中的中数字全副不动了(像卡死了一样);

下面简略形容了本文要说的问题;上面将次要从两方面来进行聊。

①、具体问题形容

②、具体的排查思路

问题详述:

我的项目部署状况:提供服务接口的我的项目 + Tomcat + Oracle

提供服务接口的我的项目:接口中蕴含很多的数据库查问、更新、新增操作;

部署我的项目的应用服务器:Tomcat

连贯的关系数据库:Oracle

数据源配置:在 Tomcat 中的 context.xml 中配置数据源,连接池应用的是 Druid;

依据下面的部署状况,而后应用 JMeter 进行压测,就呈现了文中一结尾说的问题,如下图:

问题排查:

上面会简略的形容下此问题的排查过程,让大家在面对这种问题时,能够有一些思路。

鉴于自己程度无限,如有问题敬请提出。

1、查看 JMeter 后果树:

首先看下 JMeter 后果树 中是否存在谬误的日志,如果存在,而后看看是什么问题,具体进行解决;

然而,本文遇到这个问题时,发现后果树中并没有输入谬误日志,阐明申请接口时未呈现问题;

2、服务端排查:

因为 JMeter 后果树中未展现出谬误的内容,阐明此时程序是失常运行着;

而后查看服务端日志,发现没有呈现任何 异样 日志;

看到这,就发现怪异之处了,服务端也没有报任何谬误,那问题到底出在哪里呢?

别着急,还得去看 JMeter 的聚合报告去,通过聚合报告能够发现一些问题,就是聚合报告中 申请接口的均匀响应工夫太长了,高达 2 秒多,这个不失常呀,然而代码逻辑确保是没有任何问题的;

噢,对了,接口中存在很多数据库操作,是不是数据库呈现了问题,导致数据库操作比拟耗时呢;通过查看数据库服务发现是失常的;那是不是连接数不够用了呢?嗯嗯,那来看下具体数据源的配置信息:

通过查看 数据源 的配置信息发现,Druid 连接池没有配置 最大连接数 以及最小连接数等;要晓得 druid 默认的最大连接数是 8,而后咱再去应用命令查问下以后数据库的连接数:netstat -pan | grep 1521 | wc -l,发现连接数是 8,阐明以后压测时,连接数曾经达到了最大值;因为连贯不够用,导致程序中进行 JDBC 数据库操作时须要期待可用连贯,所以说十分耗时,响应工夫就慢了,进而导致大量达到 Tomcat 的申请得不到及时的解决,最终导致 JMeter 像卡死一样。

解决形式:在数据源配置中增加上 最大连接数等;残缺数据源配置如下:

最大连接数设置为了 maxActive=”300″;最小连接数设置为了 minIdle=”50″。

<Resource name="jdbc/testdemo"
      type="javax.sql.DataSource"
      factory="com.alibaba.druid.pool.DruidDataSourceFactory"
      url="jdbc:oracle:thin:@192.168.3.125:1521:ora11g"
      driverClassName="oracle.jdbc.driver.OracleDriver"
      username="root"
      password="root"
      auth="Container"
      initialSize="30"
      maxActive="300"
      minIdle="50"
      maxWait="30000"
      timeBetweenEvictionRunsMillis="30000"
      minEvictableIdleTimeMillis="600000"
      maxEvictableIdleTimeMillis="900000"
      poolPreparedStatements="true"
      maxOpenPreparedStatements="20"
      validationQuery="select 1 from dual"
      testOnBorrow="false"
      testOnReturn="false"
      testWhileIdle="true"
      filters="wall,stat,log4j2"
      />

总结:

在我的项目进行压测前,肯定记得须要联合以后机器的配置,以及制订的压测打算对一些参数进行优化;上面简略的说几方面,如果有不同见解,大家能够评论补充;例如:

①、如果 JMeter 设置的并发数比拟大的话,须要将 Tomcat 的 连接器参数 进行优化一下,否则可能会呈现申请解决超时,没有更多的线程去解决连贯申请;

②、还有须要对 Tomcat 进行 JVM 参数调试,依据以后机器的硬件配置进行正当的 JVM 参数设置;

③、最初,特地重要的是 连接池 的配置,例如:数据库连接池、redis 连接池等,进行正当的大小配置;

❤不要遗记留下你学习的脚印 [点赞 + 珍藏 + 评论]嘿嘿ヾ

所有看文章不点赞都是“耍流氓”,嘿嘿ヾ (◍°∇°◍)ノ゙!开个玩笑,动一动你的小手,点赞就完事了,你每个人出一份力量(点赞 + 评论) 就会让更多的学习者退出进来!非常感谢!~ω~=

正文完
 0