目前,我正在开发一个负载测试项目,需要在 50000 个用户负载下执行 jmeter 脚本。我已经成功执行了脚本直到 30000 名员工,但之后我开始收到错误。
当我检查记录的文件时,我收到以下两个错误,这导致我的脚本在 50000 个用户加载执行期间失败:
非 HTTP 响应代码:java.net.BindException
用户登录,非HTTP响应码:java.net.BindException,“交易中样本数:8,失败样本数:1”,手机签到-标记考勤脚本1-1110,,false,,10309, 7144,3133,3133,空,0,57200,17
非 HTTP 响应代码:java.net.SocketException,非 HTTP 响应消息:无可用缓冲区空间(已达到最大连接数?):connect
非HTTP响应码:java.net.SocketException,“交易中样本数:1,失败样本数:1”,移动签到-标记考勤脚本1-3059,,false,,2544,0,3136,3136 ,空,0,5557,11723044354152,1,524 - /v1/firelog/legacy/batchlog (),非 HTTP 响应代码:java.net.SocketException,非 HTTP 响应消息:没有可用缓冲区空间(已达到最大连接数?):连接,
为了解决这个错误,我将数据库连接率从2000增加到5000并再次检查,但我在jmeter的日志文件中得到了与上述两个错误相同的信息。
尽管如此,我已在 jmeter.properties 文件“ httpclient.socket.localport=50000-51000”中添加了这一行,但我仍然收到错误。
有人可以帮我解决这个问题吗?
您需要调整运行 JMeter 的操作系统并增加临时端口数量,或者购买另一台负载生成器机器并以分布式模式运行 JMeter,即每台机器有 25000 个用户。