JMeter带有2MB JSON请求有效负载的POST请求的高内存消耗

时间:2019-06-28 17:24:26

标签: jmeter garbage-collection

我有一个简单的JMeter测试计划,该计划具有一个发布2MB JSON有效负载的HTTP HTTP采样器。我们将测试配置为通过最终线程组和吞吐量调整计时器支持的50至75个线程,实现每秒50个事务。 JMeter在具有Oracle JDK / jre的Mac上以8GB堆配置和G1GC算法运行。

结构

最终线程组  吞吐量整形计时器     具有2MB的HTTP Sampler-正文字段中的JSON文件     JSON断言     HTTP标头管理器

经过测试的选项 1. 10线程/ 10 TPS-静态内存消耗从3GB到8GB 2.使用__StringFromFile读取文件中的有效负载,然后将其用作使用$ {}的变量以及用作$ __ P的属性。两个选项中的内存开销均相同 3. OS进程采样器配置为使用更好的CURL,并且只有10个线程消耗了500 MB。但是我想知道在hTTP采样器本身中是否有更好的选择来实现这一目标。也就是说,通过8GB配置,每个JVM可以获得更高的吞吐量。

enter image description here

1 个答案:

答案 0 :(得分:0)

为了最大程度地减少发送大文件时JMeter的内存消耗,可以使用HTTP Raw Request sampler

它具有special mode允许direct streaming of the file to the endpoint avoiding prior reading it into the memory,因此您可以发送任何大小的文件,而不会影响JMeter的堆空间。

您可以使用JMeter's Plugins Manager

安装HTTP Raw Request采样器。

enter image description here