Download 大文件下载测试

Download 大文件下载测试,download,jmeter,httprequest,Download,Jmeter,Httprequest,我正在使用JMeter测试从服务器下载一个大文件(500MB)。我想知道服务器可以支持多少并行下载 我创建了一个包含1000个线程和HTTP请求采样器的测试计划。我进行了测试。但我的所有请求都失败,错误如下: 2019-05-06 18:07:33,884 INFO o.a.j.t.JMeterThread: Thread finished: Thread Group 1-11 2019-05-06 18:07:33,884 ERROR o.a.j.JMeter: Uncaught except

我正在使用JMeter测试从服务器下载一个大文件(500MB)。我想知道服务器可以支持多少并行下载

我创建了一个包含1000个线程和HTTP请求采样器的测试计划。我进行了测试。但我的所有请求都失败,错误如下:

2019-05-06 18:07:33,884 INFO o.a.j.t.JMeterThread: Thread finished: Thread Group 1-11
2019-05-06 18:07:33,884 ERROR o.a.j.JMeter: Uncaught exception: 
java.lang.OutOfMemoryError: Java heap space
我在谷歌上搜索发现,增加最大堆大小可以解决这个问题。所以我的结论是JMeter正在将文件下载到RAM中。因此,如果有两个400 MB的并行下载,那么将使用800 MB的RAM。但显然这是不实际的,因为我必须测试500次并行下载

我在想,我是否可以配置HTTPRequest采样器,将下载的内容存储到磁盘中,而不是存储在RAM中,或者干脆忽略它(立即下载并丢弃)。这将允许我测试500次并行下载,这是我想要实现的


如果有人知道如何做到这一点,请帮助我,或者让我知道是否有其他方法。

尝试创建Jmeter的分布式系统(主从设置)。请注意,例如,每个从机上JMETER的JAVA堆空间应该大于6GB(或更多)。如果您有足够的从机运行,负载发送最终将在从机之间分配,这可能会解决您的问题

如果问题仍然存在,考虑MOVIF同一个JMIT分布式配置到AWS——但这是一个巨大的步骤。 试一下上面提到的第一点


附加说明:请尝试禁用堆转储创建。要从JMeter.bat文件中删除此注释DUMP=“-XX:+HeapDumpOnOutOfMemoryError”行。

在谷歌搜索了一段时间后,我意识到JMeter没有任何这样的选项,但还有其他工具可以更有效地完成相同的工作。这里有一些我试过的


  • 还有更多信息。

    谢谢@Arjun。但我看到的是,即使在分布式设置中模拟500个并行连接,下载400MB文件也需要至少500*400MB,即200GB的RAM,这是不现实的。但是如果jmeter将下载保存到磁盘而不是RAM中,那么我可以模拟许多RAM较低的设备。我的目的是了解服务器如何处理大量并行下载。即使保存到磁盘会减慢客户端的下载速度,这仍然是可以接受的。但是从我看到的情况来看,在可用的HTTP采样器中没有这样的选项来将其保存到磁盘而不是RAM。