gpt4 book ai didi

java - 即使对于高堆大小分配,Jmeter 也会测试内存不足错误

转载 作者:行者123 更新时间:2023-12-01 18:02:58 25 4
gpt4 key购买 nike

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

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

最佳答案

如果没有看到,很难说出任何有意义的话:

  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,直到耗尽资源。

关于java - 即使对于高堆大小分配,Jmeter 也会测试内存不足错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60600782/

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