Azure ASP.NET 网站 http 请求排队

Azure ASP.NET 网站 http 请求排队

我们在 Azure 上部署了一个网站,性能非常糟糕。当负载增加时,响应时间会延长到整整几分钟!CPU 负载甚至不高,在 40% 左右(我们运行一个中型实例 (S2))。

经过多次调试后(我不知道是什么原因造成的),我终于偶然发现了“FREB”日志,其中显示请求正在排队:

  1. AspNetStart 数据1="GET",数据2="/profiel/aanvullen",数据3="" 13:48:44.279
  2. AspNetReqQueued 13:48:44.810
  3. AspNetReqDequeued 13:49:39.545
  4. AspNetAppDomainEnter Data1="/LM/W3SVC/xxxx/ROOT-1-xxxxx

我以为 Azure 实例会以“最佳”方式配置,因此我不必担心设置诸如maxconnection或 之类的内容maxConcurrentThreadsPerCPU。该站点不使用数据库,但它确实调用了 2 个不同的 REST API,因此我认为那里会发生排队。我尝试检查属性webrequest.ServicePoint.ConnectionLimit,但我记得它打印了 200 万之类的值(或者可能是最大整数)。

由于 CPU 使用率较低,Azure 不会启动新实例,而且我认为另一个实例也不会有帮助。

基本上我有两个问题:

  1. 这可能是什么原因造成的/我应该改变什么?
  2. 我该如何调试?Azure 中有如此多的图表和设置。我不确定在哪里可以准确看到我需要看到的内容。带宽是瓶颈吗?对特定 Web 服务的打开请求数?还是其他什么?等等。

相关内容