在项目中引入serverless技术后,前端从被动接受数据变为主动聚合多个单接口,这种变化对接口处理性能提出了新的要求,因此需要进行压测。
前期相关文章:Jmeter系列-阶梯式加压神器
压测过程中,使用的是基于本地Windows系统的压测机。在持续加压请求下,服务端返回了以下错误:java.net.BindException: Address already in use: connect
通过xlog查看日志后,发现并未报错。经过检索,发现这是由于压测机端口被占用,请求处理不过来所导致的错误。官方解释称:“在Windows环境下,端口循环回收需要2~4分钟。”推测可能是由于Windows下压测端数量有限,端口资源被占满,且未能及时循环回收,导致报错。
解决方案如下:
打开cmd,输入regedit命令,打开注册表。
找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters目录;右击Parameters,添加一个新的DWORD,命名为MaxUserPort。
双击MaxUserPort,输入65534,基数选择十进制(如果是分布式运行的话,控制机器和负载机器都需要这样操作)。
修改配置后,必须重启Windows才会生效。
补充:我在修改上述问题后可以正常进行测试,但两天后增加线程数后再次出现相同问题。进行以下配置后,测试可以正常进行。
在上述三步骤后,再添加TcpTimedWaitDelay,数值为30-300,选择十进制。重启Windows后才会生效。
近期热文:软件测试工程师工作必备模板五件套
PS:加入测试群,领取精品Python/自动化测试资料,请添加下方小编微信。
点赞、转发、分享是小编输出最大的动力!!!
排版:可乐超
题图:可乐超
以上就是Jmeter压测serverless接口,端口占用问题的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号