Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net应用程序中的Java.net.SocketException连接重置错误_.net_Performance_Jmeter - Fatal编程技术网

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

.net应用程序中的Java.net.SocketException连接重置错误,.net,performance,jmeter,.net,Performance,Jmeter,我们有一个n层(.net)web应用程序,其中有一个web层->应用层->数据库 在我们进行负载测试(使用jmeter)之前,一切都很好当我们模拟100个并发用户时,3-4分钟后,jmeter开始记录SocketException,连接重置。当我们检查应用程序日志(我们记录应用程序内部的所有异常)和系统事件时,我们找不到任何东西 我们没有对web层的性能采取任何特殊措施。但在应用层,即wcf应用程序上,我们使用了每次调用/多次并发。我们在应用层上使用了以下配置: <serv

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

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

我们没有对web层的性能采取任何特殊措施。但在应用层,即wcf应用程序上,我们使用了每次调用/多次并发。我们在应用层上使用了以下配置:

        <serviceThrottling
           maxConcurrentCalls     = "200"
           maxConcurrentSessions  = "200"
           maxConcurrentInstances = "200"/>
应用服务器(数量=1) 处理器英特尔至强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) 处理器英特尔至强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 NET Framework 4.5
Number of Cores (Virtual)   8

RAM 8GB

Operating System    Windows Sever 2012 Standard

Processor Type  64 Bit

Softwares Installed Microsoft SQL Sever 2014

负载测试很可能导致服务器过载

因此,它开始拒绝显示为连接重置错误的连接

因此,有3种选择:

  • 基于真实流量,您的负载配置文件过于激进

  • 负载配置文件正常,服务器配置不正确或尺寸过小

  • 您的应用程序无法处理此负载


您可以通过减慢rampup来检查这一点,看看您何时开始面临问题。

如果您肯定服务器没有问题,并且问题在JMeter端,您可以从wiki页面尝试以下步骤,即:

  • 将所有采样器的实现更改为
    HTTPClient4
    。最好的方法是通过
  • 向user.properties文件(位于JMeter安装的/bin文件夹下)添加接下来的两行内容:

  • 在hc.parameters文件(与JMeter安装相同的位置-/bin文件夹)中添加下一行:

    http.connection.stalecheck$Boolean=true
    
    http.connection.stalecheck$Boolean=true
    
  • 重新启动JMeter实例,以便它可以读取更新的属性并重新启动测试


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

    如果我正在执行分布式测试,我是否也应该在所有从属系统上执行以下步骤,以避免出现“连接重置”错误

    将接下来的两行添加到user.properties文件(位于JMeter安装的/bin文件夹下):

    hc.parameters文件(与JMeter安装相同的位置-/bin文件夹)中添加下一行:

    http.connection.stalecheck$Boolean=true
    
    http.connection.stalecheck$Boolean=true
    

    您在JMeter中选择了哪个HTTP请求实现?(java、HTTPClient4、HTTPClient 3.1)对此并不确定。您可以咨询我们的QA,并让您知道。你能给我一些提示吗?关于答案有什么反馈吗?
    http.connection.stalecheck$Boolean=true