Jmeter5.1.1 压测过程中遇到问题流水日记

版本:Jmeter5.1.1

1、Java heap space OutOfMemoryError

jmeter压测一段时间后,可能出现溢出情况,根据实际情况修改一下JMeter的jmeter.bat文件的HEAP和NEW的参数即可。

if not defined HEAP (
    rem See the unix startup file for the rationale of the following parameters,
    rem including some tuning recommendations
	set HEAP=-Xms1024m -Xmx4096m
	set NEW=-XX:NewSize=512m -XX:MaxNewSize=1024m
)

2、No buffer space available (maximum connections reached?)

从网上浏览了大量的帖子,发现基本上都说是因为机器端口号用尽导致tcp无法申请新的端口去建立连接。查看机器端口号使用情况,如果大量的端口处于TIME_WAIT状态,初步估计可能是客户端每次去请求服务端都创建了一次tcp连接,使用完就关闭连接,但是tcp协议中如果客户端主动关闭,为了确保发送的报文不影响下一次连接,主动关闭的一方需要停留在TIME_WAIT状态2*MSL(Max Segment Lifetime)。当并发高的时候,就会产生大量TIME_WAIT,而处于TIME_WAIT状态的端口是不能马上去建立新的连接的,这就导致No buffer space available (maximum connections reached?)这个异常。

可能解决方案:

1、重启。排除硬件导致的温恩提

2、调整tcp/ip的延迟等待时间参数,可以减少状态为:time_wait的连接:【TcpTimedWaitDelay】调小,例如:30s、

以Windows为例,调整tcp/ip:
1>.注册表编辑器:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
2>.添加参数:
(1)新建
值名称:MaxUserPort
值类型:DWORD
值数据:65534(十进制)

(2)新建
值名称:MinUserPort
值类型:DWORD
值数据:5000(十进制)

(3)新建
值名称:TCPTimedWaitDelay
值类型:DWORD
值数据:30(十进制)

3、调整内存,建议加大,并查看磁盘空间是否足够。

未完待续。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章