2小时后每秒Jmeter命中率下降

时间:2019-10-04 15:15:51

标签: jmeter embedded-jetty jmeter-4.0

大约2小时后,我们的负载测试中的每秒命中数从jmeter下降。 Jmeter以分布式方式运行non gui。我的每分钟线程数为25,000,我们使用6台服务器运行。

为了排除jmeter的瓶颈,我检查了Jmeter是否具有大小限制的连接池。

但是Jmeter似乎维护每个线程的http连接池。按照Does JMeter pool HTTP connections?

很明显,根据jmeter.properties中的httpclient4.time_to_live属性,默认值为2000毫秒

# TTL (in Milliseconds) represents an absolute value.
# No matter what, the connection will not be re-used beyond its TTL.
#httpclient4.time_to_live=2000

jmeter版本: 4.0.0使用Http4客户端实现

这意味着Jmeter为每个线程创建连接,该连接在2秒内超时。

接收码头网络服务器具有以下连接池值:

maxThreads = 3200
minthread = 656
idleTimeout = 60000

是否有可能由于码头服务器的响应缓慢/无响应而导致jmeter的每秒点击量下降?是否有将Jmeter线程计数与目标Web服务器的连接池匹配的规则。 ?

注意:我了解吞吐量通常取决于被测应用程序的响应。但是Jmeter每秒对目标服务器的命中率是否会受到测试中的应用程序的任何影响??

更新:从https://stackoverflow.com/a/40689714/1165859开始,很明显,每秒点击数与被测应用程序之间存在相关性。但是我的问题是前两个小时一切正常。之后每秒的点击数下降。

1 个答案:

答案 0 :(得分:0)

您正在做的事情更像是Soak Testing,其主要目标是检查memory leaks,并且随着时间的推移吞吐量下降,这似乎是“经典的”内存泄漏。

所以我的建议在:

  1. 在码头附近使用JVisualVM或等效项来监视堆使用情况,GC活动,线程行为等
  2. 使用JMeter PerfMon Plugin监视CPU,内存,交换,网络,磁盘使用情况等
  3. 使用JProfilerYourKit之类的探查器工具查找最大的对象,“最重的”方法等。
  4. 您还可以将上述3点应用于JMeter