我们在使用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)
网友评论