【问题标题】:Jmeter startup consuming 14g memory in non gui mode without usage of any listenerJmeter在非gui模式下启动消耗14g内存而不使用任何监听器
【发布时间】:2019-04-28 21:25:20
【问题描述】:

到目前为止,我在非 GUI 中使用 Jmeter,并且没有使用任何侦听器。 Jmeter 在 4.0 版本中启动时占用 14 g 内存,在 5.0 版本中占用 9g 内存而没有传递任何配置文件并且随着负载的增加(在 1 秒内 250 个请求,循环计数为 100)内存利用率为32克。我不想增加堆大小,你能告诉我如何减少内存消耗的解决方案吗?

Virtual memory usgae through top command

Simple jmx file

【问题讨论】:

    标签: java jmeter heap-memory


    【解决方案1】:

    很可能你不能,因为堆利用率取决于测试的性质、请求和响应大小、Pre/Post 处理器/Assertions 的数量等。

    1. 请务必关注JMeter Best Practices
    2. 考虑使用分析器工具,即JVisualVMJProfilerHeap Dump / Heap Analyzer 来确定哪些组件正在消耗堆
    3. 如果您没有足够的 RAM 并且受到密集的 GC 活动的困扰,那么加快测试速度的唯一方法就是使用 distributed testing - 这样您就可以减少每个 JMeter 引擎的线程数.

    【讨论】:

    • 如果我们运行命令 sh jmeter -n -e 或 sh jmeter -n -t test.jmx 会占用太多交换内存(在 jmx 文件中,我们仅使用具有 1 个线程的用户线程组1 sec with loop count 1 only),同时如果我们使用 top 命令,它会显示 14g 的虚拟内存利用率,对于 1 个请求来说太多了。
    • 这可能是在jmeter 启动脚本的某个地方你有-Xms 参数或者有JVM_ARGS 脚本正在使用的环境变量。您可以尝试以java -jar ApacheJMeter.jar -n -t test.jmx 启动JMeter,并且堆使用率应该会下降。
    • 我为简单的 jmx 文件和顶部命令结果添加了示例图像。
    • 我运行这个 java -jar ApacheJMeter.jar -n -t test.jmx 并通过 top 命令检查,4.0 版的虚拟内存使用量增加到 36g
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多