Gatling场景在Windows上的高并发负载下似乎存在网络或HTTP损坏

Gatling场景在Windows上的高并发负载下似乎存在网络或HTTP损坏,windows,scala,akka,netty,gatling,Windows,Scala,Akka,Netty,Gatling,我有一个非常简单的场景,它使用并发用户访问单个HTTP端点 当我以每秒10个请求的速度运行30秒时,一切都很好 当我在Windows上以每秒60个请求的速度运行30秒时,会出现非常奇怪的错误,在我看来,这些错误似乎是底层网络连接被破坏或被误用了。可能在Gatling或我的系统中的其他地方存在竞争条件或并发错误 我在linux机器上不会遇到同样的问题 web服务器是nginx和PHP。我不怀疑这是问题的原因,但我可能错了 如何跟踪并修复此错误 场景代码 症状 该场景报告了大约8%的失败率,错误看起

我有一个非常简单的场景,它使用并发用户访问单个HTTP端点

当我以每秒10个请求的速度运行30秒时,一切都很好

当我在Windows上以每秒60个请求的速度运行30秒时,会出现非常奇怪的错误,在我看来,这些错误似乎是底层网络连接被破坏或被误用了。可能在Gatling或我的系统中的其他地方存在竞争条件或并发错误

我在linux机器上不会遇到同样的问题

web服务器是
nginx
PHP
。我不怀疑这是问题的原因,但我可能错了

如何跟踪并修复此错误

场景代码 症状 该场景报告了大约8%的失败率,错误看起来像是服务器正在使用格式错误的HTTP响应进行响应,返回HTTP状态行所在的HTML代码。这些细节各不相同,但以下是一个具有代表性的示例:

2017-02-20 17:30:59,875 DEBUG org.asynchttpclient.netty.request.NettyRequestSender - invalid version format: <META
java.lang.IllegalArgumentException: invalid version format: <META
        at io.netty.handler.codec.http.HttpVersion.<init>(HttpVersion.java:130)
        at io.netty.handler.codec.http.HttpVersion.valueOf(HttpVersion.java:84)
        at io.netty.handler.codec.http.HttpResponseDecoder.createMessage(HttpResponseDecoder.java:118)
        at io.netty.handler.codec.http.HttpObjectDecoder.decode(HttpObjectDecoder.java:219)
        at io.netty.handler.codec.http.HttpClientCodec$Decoder.decode(HttpClientCodec.java:152)
        at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:411)
        at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:248)
        at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:250)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:367)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:353)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:346)
        at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1294)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:367)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:353)
        at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:911)
        at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131)
        at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:652)
        at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:575)
        at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:489)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:451)
        at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:140)
        at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)
        at java.lang.Thread.run(Thread.java:745)
2017-02-20 17:30:59875调试org.asynchttpclient.netty.request.NettyRequestSender-版本格式无效:
2017-02-20 17:30:59,875 DEBUG org.asynchttpclient.netty.request.NettyRequestSender - invalid version format: <META
java.lang.IllegalArgumentException: invalid version format: <META
        at io.netty.handler.codec.http.HttpVersion.<init>(HttpVersion.java:130)
        at io.netty.handler.codec.http.HttpVersion.valueOf(HttpVersion.java:84)
        at io.netty.handler.codec.http.HttpResponseDecoder.createMessage(HttpResponseDecoder.java:118)
        at io.netty.handler.codec.http.HttpObjectDecoder.decode(HttpObjectDecoder.java:219)
        at io.netty.handler.codec.http.HttpClientCodec$Decoder.decode(HttpClientCodec.java:152)
        at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:411)
        at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:248)
        at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:250)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:367)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:353)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:346)
        at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1294)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:367)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:353)
        at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:911)
        at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131)
        at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:652)
        at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:575)
        at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:489)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:451)
        at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:140)
        at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)
        at java.lang.Thread.run(Thread.java:745)
10.56.4.130 - - [20/Feb/2017:17:30:59 +0000] "span class=\x22id4-cta-size-small id5-cta id4-cta-color-blue id4-cta-small-blue\x22><a hr" 400 166 "-" "-" "-" 0.179 -

10.56.4.130 - - [20/Feb/2017:17:31:00 +0000] "<!doctype html>" 400 166 "-" "-" "-" 0.070 -