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

Jmeter Out of memory _ File upload test

我在文件上传测试执行期间遇到内存不足错误。 我是 运行 来自 ec2 m4.xlarge 实例(16 gb RAM)的测试,并且已分配 80% 的内存作为 Jmeter 堆大小。 在测试期间 CPU 实用程序达到 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 转储文件?

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 sampler which has nice feature of streaming file directly to the server without pre-loading it into memory so theoretically you should be able to simulate file uploads even on that limited instance, however it might not fully reflect real life scenario. You can install HTTP Raw Request sampler using JMeter Plugins Manager

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