zoukankan      html  css  js  c++  java
  • jmeter内存溢出的解决方法

    一、在压测过程中jmeter报内存溢出,可能的原因有很多。要注意下面三点:

    1、单击压测过程中使用过多的线程,官网建议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.)

    (官网:http://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.html)

    2、监听器里面配置写入到文件,不写入到文件的话所用监听结果存放在内存。还要注意不要使用“察看结果树”监听器。

    3、运行压测过程中使用no-gui模式,不要使用界面压测,使用jmeter -n -t这样的命令去运行。


    二、解决方法

    在我们测试的过程中,线程数过多时常常会导致内存溢出,接下来小编为大家提供内存溢出的解决方法:

    1.在jmeter的bin目录下面找到jmeter.properties文件,以记事本形式打开进行编辑

    2.在文件中找到以下字段进行修改

    Windows环境下面进行修改

    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。

    另外注意:JDK32位的电脑Xmx不能超过1500m,最大1378m.否则在启动Jmeter时会出现下面的报错

    下面介绍下在Linux系统上面如何进行修改:

    Linux环境上面修改jmeter (不用jmeter.sh)

    1.方法1:

    在jmeter文件开头加上

    JAVA_HOME=/apps/jdk1.8.0_121  #如果需要指定java版本可以,可以使用加上
    JVM_ARGS="$JVM_ARGS -Xms2G -Xmx10G -XX:MaxPermSize=4096m"

    方法2:

    替换jmeter文件的最后一句话为:

    java $JVM_ARGS -Xms2G -Xmx10G -XX:MaxPermSize=512m  -jar `dirname $0`/ApacheJMeter.jar "$@"

     如果是 jdk8+,去掉-XX:MaxPermSize=512m参数, 这个参数jdk7以下支持

    如果查看JDK的位数
    # 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)

    如果是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测试过程中,如果内存溢出的话,一般会出现这个提示:java.lang.OutOfMemoryError: Java heap space:意思就是堆内存溢出,不够用了。

  • 相关阅读:
    表达式计算
    atof和atoi
    十六进制与十进制之间的相互转换
    十六进制转八进制
    B. Blown Garland
    B. Arpa’s obvious problem and Mehrdad’s terrible solution
    ios::sync_with_stdio(false);
    1091 线段的重叠
    CODE[VS] 2614 安全区域
    CODE[VS] 2221 搬雕像 ——2011年台湾高级中学咨询学科能力竞赛
  • 原文地址:https://www.cnblogs.com/peak911/p/9229207.html
Copyright © 2011-2022 走看看