Linux 当jmeter压测时,JVM内存泄漏,端口不够问题,解决办法

在Linux环境,使用jmeter压测会遇到很多问题,比如:配置不对,权限不足这些都是很好解决。
但是遇到这几个问题:
1.内存泄漏   2.端口不够
遇到两个问题网上解决办法都很杂 ,没有一个清晰明了的解决办法,所以针对这两个问题,写出解决办法:


一、内存泄漏

1.现象,JVM内存泄漏。

2.原因和解决办法

1.jmeter脚本需要优化

例如:
屏蔽“聚合报告”“查看结果数”,等插件

脚本尽量最小变量,多个线程组下CSV文件设置,如果只在当前线程组使用变量,尽量不使用“全部现场”。

2.jmeter启动的时候有分配的给它的内存,一般是1G,所以要加大。

bin/下的jmeter文件(非jmeter.sh)编辑:(Windows环境编辑jmeter.bat)
JVM_ARGS="-Xms4g -Xmx4g"

还有另一个方法:启动加参数设置:JVM_ARGS="-Xms2048m -Xmx2048m" jmeter -t test.jmx
(上面调整内存格式可以1g 2g,也可以1024m 2048m,这样写都可以)


二、端口不够

1.报错现象:

Response code: Non HTTP response code: java.net.BindException
Response message: Non HTTP response message: Address already in use: connect

2.原因和解决办法:

Linux本来的默认的端口欧范围:1024-65535,64511个,所以当压测接口调用超过65535个就会出现端口不够的问题。
查Linux支持多少端口,
cat /proc/sys/net/ipv4/ip_local_port_range

然后找运维修改,或者:
修改文件  /etc/sysctl.conf
键入如下语句:
net.ipv4.ip_local_port_range = 1024 65535



压测过程还有其他问题,比如宽带限制,负载均衡,关闭缓存等,多百度即可。

你可能感兴趣的:(Linux 当jmeter压测时,JVM内存泄漏,端口不够问题,解决办法)