Jmeter内存不足_文件上传测试

时间:2018-06-05 06:36:49

标签: file-upload jmeter out-of-memory heap-dump

我在文件上传测试执行期间遇到内存不足错误。 我正在从ec2 m4.xlarge实例(16 GB RAM)运行测试,并且已经分配了80%的内存作为Jmeter堆。 在测试期间,CPU util达到100%,消耗掉整个内存(大约12 gb),并在Bin文件夹中创建巨大的java_pid ***。hrpof(堆转储)文件。

文件上传大小:200 kb,400 mb,1.5 gb文件的混合
总螺纹数:50
Jmeter版本:3.3

我尝试过不同论坛的建议,但没有工作:

  1. 已停用的听众
  2. 以非gui模式运行测试
  3. jmeter.bat中的堆大小增加
  4. 从更高的配置实例运行测试(尚未尝试此操作)
  5. 有没有人遇到过这种情况,你是如何解决这个问题的?

    另外,如何禁用生成的巨大(3-5GB)java_pid ***。hrpof转储文件?

1 个答案:

答案 0 :(得分:0)

50 threads * 1.5 GB == 75 GB虽然你有3到5 GB分配给JMeter,所以这绝对是不够的。

您需要使用类似m4.10xlarge with 160 GB RAM or m5d.12xlarge with 192 GB RAM之类的东西,以便能够使用那么多线程上传那些大文件。

另一个选择是考虑切换到Distributed Testing,但您需要启动更多m4.xlarge个实例

您也可以尝试切换到具有HTTP Raw Request功能的streaming file directly to the server without pre-loading it into memory采样器,因此理论上您应该能够模拟文件上传,即使在这个有限的实例上,但它可能无法完全反映现实生活场景。您可以使用JMeter Plugins Manager

安装HTTP Raw Request采样器

要禁用堆转储创建,请从JMeter启动脚本中删除DUMP="-XX:+HeapDumpOnOutOfMemoryError"行。