使用jmeter进行压力测试时,经常会遇到内存溢出错误:

2018-08-28 09:01:26,686 ERROR o.a.j.JMeter: Uncaught exception:

java.lang.OutOfMemoryError: Java heap space

我们来看看官方文档如何解决这个问题:

官方文档1:https://wiki.apache.org/jmeter/ErrorMessages

Exception java.lang.OutOfMemoryError: requested nnnn bytes for promotion. Out of swap space?
Not enough memory was available to Java to run the test. There are numerous possible causes, the most likely is using Listeners that use a lot of memory, such as Aggregate Report and View Results Tree. You can increase the amount of memory by editting the jmeter.bat file or the jmeter shell script. Use non-GUI mode if possile. See...

中文解释:

java.lang.OutOfMemoryError异常:请求nnnn字节进行升级。 交换空间?
没有足够的内存可供Java运行测试。 有许多可能的原因,最有可能是添加了耗费大量内存的监听器,例如聚合报告和查看结果树。 您可以通过编辑jmeter.bat文件或jmeter shell脚本来增加内存量。 如果可能,请使用非GUI模式。 具体请查看jmeter之最佳实践 中的16.7 减少资源需求:

关于减少资源使用的一些建议。

使用非GUI模式:jmeter -n -t test.jmx -l test.jtl
使用尽可能少的监听器:如果使用上面的-l标志,则可以删除或禁用它们。
在负载测试期间,请勿使用“查看结果树”或“View Results in Table”监听器,仅在脚本编写阶段使用它们来调试脚本。
在循环中对于相似的请求最好使用同一个采样器并使用变量(CSV Data Set)来区分,而不是使用多个相似的取样器。 [使用控制器在这里没有帮助,因为它会将文件中的所有测试元素添加到测试计划中。]
不要使用功能模式。
使用CSV输出而不是XML。
仅保存您需要的数据。
使用尽可能少的断言。
使用性能最佳的脚本语言(参见JSR223部分)。
如果您的测试需要大量数据 - 特别是如果需要随机化 - 请在可以用 CSV Dataset 读取的文件中创建测试数据。这可以避免在运行时浪费资源。

官方文档2:https://wiki.apache.org/jmeter/JMeterFAQ

JMeter keeps getting "Out of Memory" errors. What can I do?
This is usually caused by including memory intensive listeners in your stress test. Listeners like "View Tree Results" are useful for debugging your test, but they are too memory intensive to remain in your test when you ramp up the number of simulated users and iterations. The best listeners to use for a long-term, high-load test are Aggregate Listener, Graph Listener, and Spline Listener.
In addition, you can instruct the JVM to use more memory by editing the jmeter/jmeter.bat files for linux/windows. Within these files, find a section that sets values for the Heap:
• set HEAP=-Xms256m -Xmx256m
Feel free to change these values. Xms indicates the starting RAM the jvm will take, and Xmx will be the maximum it is allowed (for the HEAP).

中文解释:

JMeter不断出现“Out of Memory”错误。我能做什么?
这通常是由压力测试中包含内存密集型监听器引起的。 像“查看树结果”这样的监听器对于调试测试很有用,但是当你增加模拟用户和迭代次数时,它们的内存密集性太大而不能保留在测试中。 用于长期高负载测试的最佳侦听器是Aggregate Listener,Graph Listener和Spline Listener。
此外,您可以通过编辑linux/windows的jmeter.sh/jmeter.bat文件来指示JVM使用更多内存。在这些文件中,找到一个为Heap设置值的部分:
例如设置:HEAP = -Xms256m -Xmx256m
可根据测试机器实际内存情况来更改这些值。 Xms表示jvm将采用的起始RAM,Xmx将是允许的最大值(对于HEAP)。

官方文档3:http://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.html

A single JMeter client running on a 2-3 GHz CPU (recent CPU) can handle 1000-2000 threads depending on the type of test.

中文解释:

在2-3 GHz CPU(目前的CPU)上运行的单个JMeter客户端可以处理1000-2000个线程,具体取决于测试类型。
所以当线程数过多时,可能你需要考虑使用分布式测试了。

 
 

本文博客地址:https://www.cnblogs.com/zhengna/p/9554352.html

转载请注明出处,谢谢!

jmeter报错:内存溢出的更多相关文章

  1. webpack打包---报错内存溢出javaScript heap out of memory

    今天, npm run build打包时,又报内存溢出了.所以记录一下,之前查了博客有一些解释. “报错CALL_AND_RETRY_LAST Allocation failed - JavaScri ...

  2. Jmeter报错之jmeter.gui.action.ActionRouter: Error processing gui.action.Start@1b7c473a java.lang.ArrayIndexOutOfBoundsException

    一个使用了很久的Jmeter脚本,运行时Jmeter的UI界面上点击绿色按钮后,完全无反应,只有log报错,如下: 2017/06/28 14:29:23 ERROR - jmeter.gui.act ...

  3. round函数解决oracle报错"OCI-22053: 溢出错误"的问题

    继上次公司网站报错除数为0的问题,这次又来报错溢出错误,还是同一条语句!搜索网上的解决方法,发现问题描述和解决方法如下: Oracle 数值数据类型最多可存储 38 个字节的精度.当将 Oracle ...

  4. jmeter 报错Error in NonGUIDriver java.lang.IllegalArgumentException: Report generation requires csv output format, check 'jmeter.save.saveservice.output_format' property

    设置jmeter报个的时候报下面错 只要细心看问题就是把它jmeter.save.saveservice.output_format'的格式改为csv就对 这个属性是在jmeter.propertie ...

  5. jmeter报错:响应数据HTTP Status 500 & 后台日志Typed variable declaration : Object constructor

    今天在测试文件下载接口,发现在测试单个文件下载1次时,文件成功下载.但是在测试单个文件并发下载50次时,Jmeter报错了,后台服务器tomcat竟然没有发现报错信息. Jmeter响应信息报错: H ...

  6. jmeter本机内存溢出如何修改?

    websocket连接过程中内存溢出,本机配置的内存最大和最小设置的512: 一.后台返回 二.结果树返回: Thread Name: 线程组 1-9Sample Start: 2017-09-11 ...

  7. JMeter报错 ERROR o.a.j.t.JMeterThread: Test failed!

    第一次用JMeter,然后跟着教程走,发现进行测试的时候直接报错 显示如下 反复测试依然报错,网上搜索也没什么结果,自己测试了一下才发现问题. 左边创建了CSV DATA 但是并没有进行设置  导致报 ...

  8. windows7上启动jmeter报错,寻求解决办法?

    背景: 已安装jdk 12,已配置环境变量,点击jmeter.bat 或者进入cmd启动jmter都无法启动 如图: 情况1.在cmd模式下报错 情况2: 打开运行,输入“powershell ise ...

  9. Linux环境下Jmeter 报错:Unable to get local host IP address

    主要是没有在host中配置本机ip hostname查看本机名 [root@test task]# hostname test [root@test task]# 打开 [root@test task ...

随机推荐

  1. [Cubieboard] 安装 Lubuntu server for SDCard

    硬件:Cubieboard2 系统:Ubuntu 14.04 based on VMware Virtual Machine 镜像:cb2-lubuntu-server-tsd-tfcard-v2.0 ...

  2. Mysql之一二

    1.limit用来限制select语句返回指定的记录数,可以接受一个或者两个数字参数.如果参数为一个,是返回的数据条数:如果给定参数为两个,第一个参数为指定第一个返回记录行的偏移量(初识记录行的偏移量 ...

  3. OpenGL——二次曲面函数(球面-圆锥面-圆柱面)

    代码: #include<iostream> #include <math.h> #include<Windows.h> #include <GL/glut. ...

  4. 在Android源码中查找Java代码中native函数对应的C++实现

    Android源码中很多关键代码都是C++实现的,java通过jni来调用,经常会看到java中这样的代码: static native Thread currentThread(); 如何根据方法名 ...

  5. smartcrop.js 内容感知图像裁剪

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. http statusCode(状态码)含义

    201-206都表示服务器成功处理了请求的状态代码,说明网页可以正常访问. 200(成功) 服务器已成功处理了请求.通常,这表示服务器提供了请求的网页. 201(已创建) 请求成功且服务器已创建了新的 ...

  7. 使 用 Jquery 全选+下拉+单选+事件+挂事件

    先引用Jquery代码包 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http: ...

  8. 跳石头|河中跳房子|NOIP2015提高组T4|二分法

    喵 提交地址:http://codevs.cn/problem/4768/ 题目: 题意:自己看 思路: 1.读入各个石头数据 2.直接二分答案: 枚举一个石头i和一个石头j,要求i和j之间的距离为m ...

  9. .NET Core 中依赖注入 AutoMapper 小记

    最近在 review 代码时发现同事没有像其他项目那样使用 AutoMapper.Mapper.Initialize() 静态方法配置映射,而是使用了依赖注入 IMapper 接口的方式 servic ...

  10. .net core中使用Type.GetType()从字符串获取类型遇到的问题

    问题背景是想在 appsettings.json 中动态配置依赖注入,依赖注入代码如下: services.AddSingleton(typeof(ISmsService), Type.GetType ...