gpt4 book ai didi

asp.net - IIS/ASP.NET 故意响应同时请求比单个请求慢?

转载 作者:行者123 更新时间:2023-12-04 17:46:07 24 4
gpt4 key购买 nike

当请求与其他请求同时发送时,IIS(或者可能是 ASP.NET)需要更长的时间来响应请求。例如,如果一个网页同时发送请求 A 和其他 20 个请求,则需要 500 毫秒,但如果单独发送此请求,则需要 400 毫秒。

此功能有名称吗?它是在 IIS 还是 ASP.NET 中?我可以禁用或更改它吗?使用它有什么好处吗?

注意事项:

  • 我在 ASP.NET Web API 应用程序上看到了这个问题。
  • 我检查了 IIS 设置(Windows Server 2012 R2 上的 IIS 8.5),没有发现任何限制其吞吐量的因素。带宽和 CPU 节流等所有限制都很高。服务器也有很好的硬件。

更新 1:所有请求都将从数据库中读取内容。我已经在 Chrome 开发者控制台中检查了它们。还创建了一个简单的 C# 应用程序,它向服务器发出多个并行请求。当它们真正并行时,它们会花费大量时间,但是当在每次调用之间进行等待时,响应时间会急剧下降。

更新 2:我的应用程序中有一个简单的方法,它只发送一个 Ok:

[AllowAnonymous]
public IHttpActionResult CheckOnline()
{
return Ok();
}

此处存在相同的行为。在我的自定义 C# 测试器中,如果我同时多次调用此路由,则需要超过 1000 毫秒才能完成,但在每次调用之间等待 5 秒时,响应时间会降至 20 毫秒以下。此方法不受 IO 或 CPU 限制。似乎 IIS 检测到这些请求来自单个特定用户/客户端,所以不要太在意它。

最佳答案

如果您在您的应用程序中使用 ASP.NET Session,请求将被排队并一个接一个地处理。因此,在处理之前的请求时,最后一个请求可以保留在队列中。

另一个可能的原因是 ASP.NET Thread Pool 中的所有线程很忙。在这种情况下,将创建一个新线程来处理需要额外时间的新请求。

这只是一个理论(或我的想法)。任何其他原因都是可能的。

关于asp.net - IIS/ASP.NET 故意响应同时请求比单个请求慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48499382/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com