HttpNetty ApacheBench测试:apr_轮询:指定的超时已过期(70007)

HttpNetty ApacheBench测试:apr_轮询:指定的超时已过期(70007),netty,Netty,我有一个基于netty框架的简单HttpServer应用程序。我尝试使用apache bench工具(操作系统Windows 7)对其进行测试,但总是出现错误: 指定的超时已过期(70007) 我试着使用不同的查询来运行测试-它没有帮助。同时,如果我从浏览器访问服务器,我会收到服务器的响应。有人遇到过同样的问题吗?这个问题可能来自几个方面。但我的猜测是,ApacheBench对于您的基础架构,或者至少对于您的配置来说,实在是太“强大”了。以下是一些您可以尝试的东西: 客户端 尝试查看Apach

我有一个基于netty框架的简单HttpServer应用程序。我尝试使用apache bench工具(操作系统Windows 7)对其进行测试,但总是出现错误:

指定的超时已过期(70007)


我试着使用不同的查询来运行测试-它没有帮助。同时,如果我从浏览器访问服务器,我会收到服务器的响应。有人遇到过同样的问题吗?

这个问题可能来自几个方面。但我的猜测是,ApacheBench对于您的基础架构,或者至少对于您的配置来说,实在是太“强大”了。以下是一些您可以尝试的东西:

客户端

  • 尝试查看ApacheBench中使用的并发级别并降低它
服务器端

  • 您可能对可用tcp端口的数量有限制。您可以通过更改第一个可用端口来更改它
    sudo sysctl-w net.inet.ip.portrange.first=32768
    。这将降低tcp的第一个可用端口号,从而增加可用端口的总数
  • 您可以尝试降低等待时间编号
    sudo sysctl-w net.inet.tcp.msl=1000
    。请注意,这只是用于测试,因为这意味着在生产环境中,客户端将很快超时

对于那些用spring 5 netty来面对这个问题的人来说,有一个bug被归档了,并且有一个替代工具,叫做围攻。在我的例子中,它与SpringBoot2SpringFramework 5和netty一起工作。