自主应用程序中的最大并发请求

时间:2014-10-16 18:06:05

标签: performance iis signalr owin self-hosting

我有一个自我主机信号器应用程序,一切正常,但当用户超过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

1 个答案:

答案 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