gpt4 book ai didi

java - 为什么 JMeter 在负载测试中创建这么多线程?

转载 作者:太空宇宙 更新时间:2023-11-04 11:30:02 26 4
gpt4 key购买 nike

我有许多 JMeter 测试,它们都同时从命令行运行。它们具有作为属性文件 (users_concurrent.properties) 传入的用户数。

例如:

C:/applications/apache-jmeter-3.0/bin/jmeter.bat -n -t RDA_CAEventMaintenance.jmx -l UK_RDA_CAEventMaintenance.jtl -q dev_uk.properties -q users_concurrent.properties 

对于大多数测试,这会运行 5 个测试线程(在结果文件和线程转储中进行验证)。然而,其中 2 个测试耗尽了内存并创建了 hprof.pid 转储文件。

分析这些文件显示大约 100 个线程占据了一半以上的堆: enter image description here

这是 JMeter 错误吗?当我指定 5 时,它不应该启动那么多线程。

使用JMeter 3.0

最佳答案

调查

Thread Group 1 - 100

看来您至少有 100 个线程。您可以在 jmeter.log 文件中仔细检查它,查找如下行:

Starting thread group... number=1 threads=XXX

因此,您要么以错误的方式定义或引用代表线程数的属性。正确配置示例如下:

  1. 在 JMeter 线程组下使用 __P() function 定义虚拟用户数量喜欢

    ${__P(threads,)}
  2. 确保您的 users_concurrent.properties 文件包含以下行(并且该行仅出现一次)

    threads=5

另外,为了以防万一,请确保您正在关注 JMeter Best Practices以及来自9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure的建议

关于java - 为什么 JMeter 在负载测试中创建这么多线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43903597/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com