美文网首页
jmeter内存溢出解决方案

jmeter内存溢出解决方案

作者: 猪儿打滚 | 来源:发表于2020-11-03 09:27 被阅读0次

我们在使用jmeter压测过程中,有几个点需要注意:

  • 压测机如果是2-3GHz CPU,那么压测过程中建议使用1000-2000线程数。实际情况,还得看机器的配置和启动应用的情况。(A single JMeter client running on a 2-3 GHz CPU (recent CPU) can handle 1000-2000 threads depending on the type of test.)

  • 注意不要使用“查看结果树”监听器

  • 压测过程建议使用命令行模式,不要使用GUI模式(https://www.jianshu.com/p/d151c00f926e

jmeter内存溢出的表现和分析

  • 表现
    jmeter内存溢出,一般表现在执行压测的过程中,无法发出请求(可以理解为卡住)
  • 分析
    此时不要慌,首先查看是否是服务端出现问题;其次看压测机的资源使用率;如果两者都没问题,那么大概率是内存溢出了(特别是线程数多的时候)

jmeter内存溢出的解决方案

  • 一、windows中的解决方案
    1.文本编辑器打开bin/jmeter.bat
    2.在文件中找到以下字段进行修改
set HEAP=-Xms256m -Xmx256m
set NEW=-XX:NewSize=128m -XX:MaxNewSize=128m
# 改为:
set HEAP=-Xms256m -Xmx1024m
set NEW=-XX:NewSize=128m -XX:MaxNewSize=512m

注意点:

  • HEAP最多设置为物理内存的一半,默认设置为512M。如果HEAP超过物理内存的一半,可能运行jmeter会慢,甚至出现内存溢出,原因是java运行起来比较吃内存,占CPU。

  • 如果安装的是32位的JDK,那么Xmx不能超过1500m,最大1378m.否则在启动Jmeter时会出现下面的报错


    32位JDK报错示例
  • 二、linux中的解决方案
    1.vim打开bin/jmeter.sh
    2.添加以下内容:
    java $JVM_ARGS -Xms1G -Xmx5G -XX:MaxPermSize=512m -Dapple.laf.useScreenMenuBar=true -jar `dirname $0`/ApacheJMeter.jar "$@"

查看安装的JDK的位置

  • 查看java版本以及相关信息:java -version

1.32位的结果如下:

# java -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) Server VM (build 20.1-b02, mixed mode)

2.如果是64位的话,最后一行会显示64-Bit

#java -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)

相关文章

网友评论

      本文标题:jmeter内存溢出解决方案

      本文链接:https://www.haomeiwen.com/subject/bsqbvktx.html