Jmeter测试内存不足错误,即使分配高堆大小

问题描述 投票:0回答:1

我正在使用Jmeter 5.0运行一些性能测试。用我的参数解析一个csv文件并发送一个简单的post请求,没什么特别的。我的线程组并发配置的100个线程具有100 RPS(不是很多)。堆大小设置为最大15GB和最小1GB。我的机器的物理RAM内存是32GB。我试图将堆大小提高到20GB甚至25GB,但是由于内存不足,它仍然崩溃了。我分析了gc日志,发现对于第一个15GB最大堆大小配置和第二大大部分堆大小(大约95%),老一代正在使用,GC莫名其妙地无法清理它们。我没有使用GUI模式,也没有使用监听器。第一个15GB配置在1小时20分钟后崩溃,第二个持续了仅仅2个多小时。

这是20GB的GCeasy日志分析:20GB heap size

java memory jmeter performance-testing
1个回答
0
投票

很难看到有意义的东西:

  1. 完整的堆栈跟踪(因为OutOfMemory可能有很多面)
  2. HProf file的内容
  3. 测试计划的结构

[通常,OutOfMemory错误表示memory leak,因此请确保遵循9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure文章中的建议。


“盲注”。仅当您的应用程序响应时间为1秒或更短时,您才能为100个虚拟用户提供100 RPS。

如果应用程序响应时间变为> 1秒,并且您正在使用Precise Throughput TimerThroughput Shaping Timer来迫使JMeter达到100 TPS,则可能是由于过载导致应用程序无法快速响应的情况,并且JMeter越来越多的线程试图达到100 RPS,直到资源用尽。

© www.soinside.com 2019 - 2024. All rights reserved.