Apache使用jmeter进行多个请求

我正在使用Jmeter测试对我的Web应用程序的多个请求。

NumberOfThread在Jmeter中使用了50。

我的过程如下:

  1. 登录页面。
  2. 使用用户名和密码登录。
  3. 显示菜单页面。
  4. 点击搜索页面。
  5. 转到搜索页面。
  6. 点击搜索按钮。
  7. 单击搜索结果链接以转到更新页面。
  8. 更新数据,然后单击更新按钮。
  9. 显示更新的结果页面。
  10. 返回搜索页面。
  11. 注销按钮单击。

在上面的过程中,我将循环控制器用于5到10的5号循环。

在那种情况下,如果我使用了25个以上的线程来运行Jmeter测试,就会address already in use, the socket binding

exception发生。

我想知道如何解决这个问题。

回答:

看起来您的客户端用尽了临时端口,或者您的客户端环境有问题。

您在使用Windows吗?

您可能至少可以执行以下操作:

  1. Windows:在本文中查找作为jmeter主机的Windows系统解决方案。
  2. 使用Linux系统作为主机,以运行Jmeter负载方案。

同样,您可能会发现本文对您的测试活动有用(我已经在标签中看到了Jboss)。


从上面的链接文章再一次:

发出HTTP请求时,将为TCP / IP连接分配一个临时端口。临时端口范围是32678 –61000。客户端关闭连接后,连接将处于TIME-

WAIT状态60秒钟。

如果JMeter(HttpClient)每秒发送数千个HTTP请求并创建新的TCP / IP连接,则系统将耗尽可用的临时端口进行分配。

。。。

否则,以下消息可能会出现在JMeter JTL文件中:

_非HTTP响应代码:java.net.BindException_

非HTTP响应消息:地址已在使用中

解决方案是启用快速回收TIME_WAIT套接字。

其他选项包括TCP_FIN_TIMEOUT(用于减少将连接置于TIME_WAIT状态的时间)和TCP_TW_REUSE(用于允许系统重用置于TIME_WAIT状态的连接)。

在服务器端:

  • 这样可以快速回收TIME_WAIT套接字

/sbin/sysctl -w net.ipv4.tcp_tw_recycle=1

  • 这允许重用TIME_WAIT状态的套接字进行新连接-tcp_tw_recycle的更安全替代方法

/sbin/sysctl -w net.ipv4.tcp_tw_reuse=1

tcp_tw_reuse设置在许多短连接处于打开状态并处于TIME_WAIT状态的环境中(例如Web服务器)特别有用。重用套接字对于减少服务器负载非常有效。

  • 系统同时保留的最大timewait套接字数

/sbin/sysctl -w net.ipv4.tcp_max_tw_buckets=30000

或相同但以另一种方式-将以下行添加到/etc/sysctl.conf文件中,以便更改在重新启动后仍然有效:

net.ipv4.tcp_max_tw_buckets = 30000

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_tw_reuse = 1

同样在服务器方面,请查看的结果ulimit -n

最大打开文件数的限制的默认值为1024,它可以解释BindExceptions在1000个连接处的出现。

同样,您可以使用以下方法在测试运行期间监视服务器与jmeter之间的连接数:

netstat -an | grep SERVER_PORT | wc -l

定义连接限制-如果有的话。

以上是 Apache使用jmeter进行多个请求 的全部内容, 来源链接: utcz.com/qa/424489.html

回到顶部