在IIS下增加.NET Remoting应用程序上的并发请求

时间:2010-08-10 18:15:40

标签: multithreading performance iis-7 remoting

我们在IIS7下运行单一呼叫模式的.NET 2.0远程服务器。它有两个API,例如:

  1. DoLongRunningCalculation() - 有很多数据库请求,可能需要很长时间才能执行。
  2. HelloWorld() - 只返回“Hello World”。
  3. 我们试图在最糟糕的情况下通过使用两个API调用随机轰炸来测试远程服务器(在Windows 7机器上),并发现如果超过10个客户端请求,则HelloWorld响应(通常是小于0.1秒)开始花费更长时间,持续数秒钟。我们的目标是我们不希望长时间运行的远程调用阻止短时间运行的呼叫。如果我们有20个客户端线程在运行,那么以下是ASP.NET v2.0.50727的性能计数器:

    1. 请求排队:0
    2. 请求执行:(最多:10)
    3. 工作流程正在运行:0
    4. 管道实例模式:(最多:10)
    5. 应用程序队列中的请求:0
    6. 我们已经尝试根据Thomas的博客ASP.NET Thread Usage on IIS 7.0 and 6.0在注册表中将maxConcurrentRequestsPerCPU设置为“5000”,但它没有帮助。根据上述数据,似乎并发请求的数量停留在10。

      所以,问题是:

      1. 我们如何增加并发请求?主要目标是我们不希望长时间运行的远程调用阻止短时间的呼叫。
      2. 为什么Max Requests Executing一直停留在10?
      3. 提前致谢。

1 个答案:

答案 0 :(得分:2)

Windows 7有20个入站连接限制。 XP和之前限制为10(不确定Vista)。这可能是您性能下降的原因。尝试在没有任意连接限制的实际服务器操作系统上进行测试。