.net应用程序中的Java.net.SocketException连接重置错误


问题内容

我们有一个n层(.net)Web应用程序,其中有一个Web层-> App层->数据库。

一切正常,直到我们进行了负载测试(使用jmeter)。 当我们模拟100个并发用户时,经过3 -4分钟。
jmeter开始记录SocketException,重置连接
。当我们检查应用程序日志(我们将所有异常记录在应用程序内部)和系统事件时,找不到任何东西。

我们尚未针对网络层性能采取任何特殊措施。但是在作为wcf应用程序的App层上,我们使用了每次调用/多个并发。我们在应用程序层上使用了以下配置:

        <serviceThrottling
           maxConcurrentCalls     = "200"
           maxConcurrentSessions  = "200"
           maxConcurrentInstances = "200"/>

。。。

    <binding name="defaultNetTcpBinding" closeTimeout="00:10:00" sendTimeout="00:10:00" receiveTimeout="00:10:00" openTimeout="00:10:00" maxReceivedMessageSize="2147483647" maxBufferPoolSize="2147483647"
             maxConnections="200" listenBacklog="200">

除了这个问题,我们的应用层使用率也更高(50-60%)。 以下是我们3个VM的配置(每层1个)

Web服务器(数量= 1) 处理器Intel Xeon CPU X5675 @ 3.07 GHz 2.19 GHz

Number of Cores (Virtual)   8

RAM 8GB

Operating System    Windows Sever 2012 Standard

Processor Type  64 Bit

Softwares Installed NET Framework 4.5

App Server(数量= 1) 处理器Intel Xeon CPU X5675 @ 3.07 GHz 3.07 GHz

Number of Cores (Virtual)   8

RAM 8GB

Operating System    Windows Sever 2012 Standard

Processor Type  64 Bit

Softwares Installed NET Framework 4.5

DB服务器(数量= 1) 处理器Intel Xeon CPU E7-4830v2 @ 2.20 GHz 2.19 GHz

Number of Cores (Virtual)   8

RAM 8GB

Operating System    Windows Sever 2012 Standard

Processor Type  64 Bit

Softwares Installed Microsoft SQL Sever 2014

问题答案:

IIS日志有助于深入探究根本原因。我们发现在我们面临套接字问题的所有请求中都有网络连接异常。