一、单击压测过程当中使用过多的线程,官网建议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.)html
(官网:http://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.html)java
二、监听器里面配置写入到文件,不写入到文件的话所用监听结果存放在内存。还要注意不要使用“察看结果树”监听器。apache
三、运行压测过程当中使用no-gui模式,不要使用界面压测,使用jmeter -n -t这样的命令去运行。
app
在咱们测试的过程当中,线程数过多时经常会致使内存溢出,接下来小编为你们提供内存溢出的解决方法:测试
1.在jmeter的bin目录下面找到jmeter.properties文件,以记事本形式打开进行编辑ui
2.在文件中找到如下字段进行修改spa
Windows环境下面进行修改线程
将htm
set HEAP =-Xms256m -Xmx256mblog
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:意思就是堆内存溢出,不够用了。