JMemMeter无头创建大量实时线程,如在Visual VM中查看的那样.内存不足错误



我已经使用 jmeter 一段时间了,但这是我第一次尝试使用无头实例。

我创建了一个包含两个线程组的测试计划。

TG1:生成示例数据的源文件。(432000条样条记录(TG2:使用示例数据触发对另一个应用程序的请求。

这在短时间内工作正常,但是当我在较长时间内运行它时,它会因内存不足错误而死亡。

我已经使用 visualvm 查看了正在运行的应用程序,可以看到活动线程计数几乎从启动开始就是 14,000+。二手堆射了起来,继续死亡。

该测试预计将在 43200 秒的上升周期内创建 432000 个线程。 这是在 12 小时内每秒 10 个线程。

有趣的是,非无头构建比没有附加侦听器的无头构建持续时间更长。

我不确定这些线程来自哪里?我假设它们是要触发的线程,它们是预先创建的吗?

我在这里错过了一些东西。

编辑

我已经尝试过"延迟线程创建直到需要"选项。线程仍然是提前创建的,我有同样的问题。

无头模式实际上是推荐用于运行 JMeter 负载测试的模式。

您的情况是什么?如果是 432000 小时内的 12 个请求,即每秒仅 10 个请求,那么看起来您的配置不是很正确,您需要"告诉"JMeter 使用恒定吞吐量计时器将负载保持在每秒 10 个请求的速率。

如果您希望创建 432000 个活动并发线程,您需要考虑分布式测试,但是我认为您真的不需要这么多并发线程。

最新更新