【问题标题】:IIS 6.0 requests slowdownIIS 6.0 请求减速
【发布时间】:2025-12-01 17:55:01
【问题描述】:

我在 IIS 6.0 上有一个网络应用程序。它不断处理大量的短时间请求(15-30 毫秒的处理时间)。当出现一些 (1-10) 个长时间请求时,所有短时间请求都会变慢(处理时间长达 2000-6000 毫秒,其中一些请求超过 100000)。

是否应该在 IIS 中的请求之间进行隔离?一个请求不应该中断另一个请求吗?

在 IIS 日志中是这样的:

[Normal work]
cs-host sc-status sc-substatus sc-win32-status sc-bytes cs-bytes time-taken
192.168.1.7 200 0 0 2394 524 734
192.168.1.7 200 0 0 2394 524 0   
192.168.1.7 200 0 0 2394 524 0
192.168.1.7 200 0 0 2394 524 15
192.168.1.7 200 0 0 2394 524 15
192.168.1.7 200 0 0 2394 524 0
192.168.1.7 200 0 0 2394 524 0
192.168.1.7 200 0 0 2394 524 15
192.168.1.7 200 0 0 2394 524 46

[Slowdown]
cs-host sc-status sc-substatus sc-win32-status sc-bytes cs-bytes time-taken
192.168.1.7 200 0 64 0 522 508251
192.168.1.7 200 0 64 0 522 91827
192.168.1.7 200 0 64 0 522 386438
192.168.1.7 200 0 64 0 522 445947
192.168.1.7 200 0 0 178 522 35545
192.168.1.7 200 0 64 0 522 274130

sc-win32-status 64 表示“指定的网络不再可用”但没有断开连接。 我尝试使用 IIStuner (http://iistuner.codeplex.com/) 等工具调整 IIS,但没有任何效果。

  • 为什么会出现这种情况?
  • 如何解决这个问题?

【问题讨论】:

    标签: asp.net iis-6


    【解决方案1】:

    看起来所有的麻烦都出在应用程序本身。

    我们使用了带有 DataGridView 的 ASP.NET 表单(页面在服务器端形成)。在长时间运行的请求到来时,服务器必须对其进行处理并将数据加载到其内存中 - 这样只会阻止其他活动。

    我们使用 ASP.NET MVC(客户端页面)重写应用程序,问题就解决了。

    【讨论】: