jmeter避坑指南

Posted lrp184

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jmeter避坑指南相关的知识,希望对你有一定的参考价值。

1.jp@gc - PerfMon Metrics Collector控件中必须要将文件进行写入,否则报错:

技术图片

 

技术图片

 

 

 

2.并发测试后报java.net.BindException: Address already in use:

原因:

操作系统会为TCP/IP服务预留临时端口,Jmeter在跑并发测试的时候每开启一个线程(new socket操作)就会占用一个临时端口,若TCP/IP端口被占完了,而且没有及时释放(socket.close()操作不能立即释放绑定的端口,而是把端口设置为TIME_WAIT状态,过段时间才会真正释放,默认是240s),就会出现Java.net.BindException: Address already in use: connect这种情况

解决方案:

1.增加预留给TCP/IP服务的端口数量。

1.1 如果Jmeter的运行平台在Windows端。

在 Microsoft Windows XP 或 Windows Server 2003 中,由 Windows 套接字分配给应用程序的临时 TCP 或 UDP 端口号的最大值是由注册表设置 MaxUserPort 控制的,该参数的默认值为 5000。临时端口从端口号 1025 开始编号。因此,默认情况下,Windows XP 或 Windows Server 2003 会为执行通配绑定的应用程序分配一个范围从 1025 到 5000 的号码。

要在运行 Windows XP 或 Windows Server 2003 的计算机上更改临时端口的最大值,请执行以下操作:

 

1.

单击开始,再单击运行,键入 regedit.exe,然后单击确定。

2.

找到而后单击以下注册表子项:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters

3.

在编辑菜单上,指向新建,然后单击双字节值。

4.

键入 MaxUserPort,然后按 ENTER。

5.

双击 MaxUserPort 值,然后以十进制或十六进制键入最大值。

键入的数值必须在 5000¨C65534(十进制)之间。如果此参数设置的值超出有效范围,则使用最接近的有效值(5000 或 65534)。

6.

单击确定。

7.

退出注册表编辑器。

 

必须重新启动计算机,方可使 MaxUserPort 注册表设置更改生效。

如果应用程序使用通配绑定同时打开大量连接,可能只需更改这个值,而且需确保应用程序不会用尽可用的临时端口。例如,一个使用文件传输协议 (FTP) 传输大量小文件的数据备份应用程序就可能用尽临时端口。

1.2 调高你的web服务器的最大连接线程数,调到1024或者2048,以resin为例,修改resin.conf中的thread-pool.thread_max,如果你采用apache连resin的架构,别忘了再调整apache;

2. 加快被占用端口的释放速度

/sbin/sysctl -a|grep net.ipv4.tcp_tw

net.ipv4.tcp_tw_reuse = 0

net.ipv4.tcp_tw_recycle = 0

修改服务器内核参数

sysctl -w net.ipv4.tcp_timestamps=1 开启对于TCP时间戳的支持,若该项设置为0,则下面一项设置不起作用

sysctl -w net.ipv4.tcp_tw_recycle=1 表示开启TCP连接中TIME-WAIT sockets的快速回收

[xxx@xxx~]$sysctl -p,使内核参数生效
————————————————
版权声明:本文为CSDN博主「踟蹰千年」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/baiyan3212/java/article/details/102694917

 

以上是关于jmeter避坑指南的主要内容,如果未能解决你的问题,请参考以下文章

JMeter:Dashboard Report自动生成测试报告的巧用和避坑

Jmeter安装操作指南

Jmeter性能测试使用指南

使用JMeter进行负载测试——终极指南

Jmeter操作指南:参数化请求

用Java创建JMeter变量 - 终极指南