我有一个自我主机信号器应用程序,一切正常,但当用户超过5000时,用户迅速重新连接。我知道appConcurrentRequestLimit的defalt值是5000.我运行它:
cd %windir%\system32\inetsrv
appcmd.exe set config /section:system.webserver/serverRuntime /appConcurrentRequestLimit:100000
但没有改变。我根据this增加了maxConcurrentRequestsPerCPU和requestQueueLimit
但我还有问题。
我正在使用Windows Server 2012和iis 8
答案 0 :(得分:0)
你在黑暗中拍摄,你没有关于实际表现和发生的事情的数据。由于不同的原因(服务器超时,定期间隔重新连接,服务器错误),用户可能会重新连接。有无数的可能性。
了解正在发生的情况并衡量性能的正确方法是使用默认配置运行Baseline
性能负载测试,并收集相关的性能计数器,例如当前请求,排队请求,当前连接,最大值连接等。
您还应该在服务器上收集任何相关的错误日志,以帮助您了解正在发生的事情。
您可以在下面找到所需的完整性能计数器列表:
<强>内存强>
.NET CLR Memory# bytes in all Heaps (for w3wp)
<强> ASP.NET 强>
ASP.NET\Requests Current
ASP.NET\Queued
ASP.NET\Rejected
<强> CPU 强>
Processor Information\Processor Time
<强> TCP / IP 强>
TCPv6\Connections Established
TCPv4\Connections Established
网络服务
Web Service\Current Connections
Web Service\Maximum Connections
<强>线程强>
.NET CLR LocksAndThreads\ # of current logical Threads
.NET CLR LocksAndThreads\ # of current physical Threads
在图表上获得基准性能结果后,您可以修改配置(例如,修改上面尝试过的并发请求数),然后重新运行测试,并再次收集相同的性能计数器。
效果计数器结果会说明一切,它们会引导您找到解决方案。
您可以使用 Crank :
等工具生成负载https://github.com/SignalR/SignalR/tree/dev/src/Microsoft.AspNet.SignalR.Crank
此外,您还可以查看SignalR故障排除指南:
http://www.asp.net/signalr/overview/testing-and-debugging/troubleshooting