官方指定Jmeter配置JVM堆内存方式

144 阅读3分钟

  文章转载链接www.51testing.com/html/93/n-7…

  1.概述

  在使用Jmeter性能测试过程中,可能会应为默认设置的堆内存值较小出现堆内存溢出问题,此时解决的方式有两种,分布式测试和调大堆内存。下面介绍官方推荐调整堆内存方法。

  2.调整Jmeter堆内存

  2.1.介绍官方推荐堆内存调整方法(jmeter在windows环境运行配置方式)

  了解Jmeter最便捷的方式就是看官方文档,它提供了全方位的Jmeter介绍。如果没有阅读官方文档的习惯可能会走一些弯路,因此推荐一条好走的路。

  官方文档地址:jmeter.apache.org/usermanual/…

  1.Jmeter使用手册展示

  2.带你从手册查找JVM正确的配置方式

  点击Getting Started打开手册:

  在1.4章节Running Jmeter中官方介绍了配置环境变量的方式,就是在Jmeter的bin目录下新建一个setenv.bat文件,官方还给出了在文件中配置JVM参数的例子。

  为什么网上提供的jmeter.bat文件修改jvm参数不生效那?官网也给出了答案。

  原因是优先级顺序,setenv.bat文件配置会覆盖jmeter.bat配置内容。

  2.2.介绍官方推荐堆内存调整方法(jmeter在linux环境运行配置方式)

  1.linux和windows配置jvm区别

  linux环境配置Jmeter的JVM参数和window环境配置原理一样,只有两点区别

  Linux环境创建的setenv脚本文件后缀不是bat,是sh。(setenv.sh)

  setenv.sh脚本文件语法格式稍有区别。window解析bat文件使用set语法设置变量,linux解析shell语言使用export设置变量。

  2.官方提供的linux环境配置jvm方法

  继续阅读官方手册1.4 Running JMeter章节,官方文档指出在bin目录中创建setenv.sh文件,并在该文件中配置jvm,所配置的内容将在Jmeter启动时候被jmeter脚本文件读取。

  2.3.Jmeter配置JVM总结

  1.windows配置jvm两种方式

  在jmeter.bat文件中修改jvm参数,如下图。

  在bin目录创建setenv.bat文件修改jvm参数,它的优先级高于jmeter.bat会覆盖该文件内容。

  2.Linux环境配置jvm参数两种方式

  在jmeter没有后缀的文件中配置jvm参数。

  jmeter配置jvm脚本:

  在bin目录下新建setenv.sh文件配置jvm参数,它的优先级高于jmeter脚本,覆盖该脚本参数。

  3.配置jvm参数实例

  3.1.Windows环境调整堆内存(jmeter.bat方式)

  1.在jmeter.bat文件配置jvm参数:

  2.启动Jmeter验证jvm配置

  使用Java VisualVM工具查看Jmeter设置的堆内存结果。

  3.2.Windows环境调整堆内存(setenv.bat方式)

  1.setenv.bat文件配置jvm

  在bin目录下新建setenv.bat文件,在文件中配置JVM参数。

  rem This is the content of bin\setenv.bat,

  rem it will be called by bin\jmeter.bat

  set JVM_ARGS=-Xms256m -Xmx256m -XX:MaxMetaspaceSize=256m

  2.启动Jmeter验证jvm配置

  使用Java VisualVM工具查看Jmeter设置的堆内存结果。

  3.3.Linux环境调整堆内存

  1.创建setenv.sh文件

  在jmeter的bin目录下新建setenv.sh配置文件,在文件中配置jvm参数

  export JVM_ARGS="-Xms256m -Xmx256m -XX:MaxMetaspaceSize=256m"

  2.启动jmeter脚本查看jvm参数

  命令方式启动jmeter脚本

  // jmeter命令调用的就是bin目录下的jmeter脚本文件,因此他会在启动时读取setenv.sh文件中jvm参数。

  jmeter -n -t ./JmeterScript/LiveStreaming.jmx

  查看Jmeter的jvm参数和设置值一致。