我们有一个n层(.net)Web应用程序,我们有一个Web层 - >应用层 - >数据库。
在我们进行负载测试(使用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">
除此问题外,我们的App层使用率也较高(50-60%)。以下是我们3个虚拟机的配置(每层一个)
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(Quantity = 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
数据库服务器(数量= 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
答案 0 :(得分:2)
如果我正在执行分布式测试,我是否应该在所有从属系统上执行以下步骤,而不是让&#34;连接重置&#34; 错误..?< / p>
将下两行添加到 user.properties 文件(位于 JMeter 安装的 / bin 文件夹下):
httpclient4.retrycount=1
hc.parameters.file=hc.parameters
在 hc.parameters 文件(相同位置 - JMeter安装的/ bin文件夹)中添加下一行:
http.connection.stalecheck$Boolean=true
答案 1 :(得分:1)
如果您绝对确定您的服务器没有问题,并且问题出在JMeter端,您可以尝试按照Connection Reset since JMeter 2.10 ? wiki页面中的步骤操作:
HTTPClient4
。最好的方法是通过HTTP Request Defaults。将下两行添加到 user.properties 文件(位于JMeter安装的/ bin文件夹下):
httpclient4.retrycount=1
hc.parameters.file=hc.parameters
在 hc.parameters 文件中(相同位置 - JMeter安装的/ bin文件夹)添加下一行:
http.connection.stalecheck$Boolean=true
重新启动JMeter实例,以便它可以读取更新的属性并重新开始测试。
答案 2 :(得分:0)
您的服务器很可能因负载测试而过载。
因此它开始拒绝显示为连接重置错误的连接。
所以3个选项:
根据实际流量,您的负载资料过于激进
您的负载配置文件正常,您的服务器配置不正确或尺寸不足
您的应用程序无法处理此负载
您可以通过减慢加速来检查这一点,看看您何时开始面临问题。
答案 3 :(得分:0)
IIS日志有助于深入挖掘根本原因。我们发现在我们遇到Socket问题的所有请求中都存在网络连接异常。