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

问题描述 投票:0回答:1

我们有一个 .NET 2.0 Remoting 服务器,在 IIS7 下以 Single-Call 模式运行。它有两个 API,例如:

  1. DoLongRunningCalculation() - 有大量数据库请求,可能需要很长时间才能执行。
  2. HelloWorld() - 仅返回“Hello World”。

我们尝试在最坏的情况下对远程服务器(在 Windows 7 计算机上)进行压力测试,通过使用两个 API 调用随机轰炸它,发现如果我们超过 10 个客户端请求,HelloWorld 响应(通常小于0.1 秒)开始花费越来越长的时间,进入很多秒。我们的目标是,我们不希望长时间运行的远程调用来阻止短期运行的调用。如果我们运行 20 个客户端线程,以下是 ASP.NET v2.0.50727 的性能计数器:

  1. 排队请求:0
  2. 执行请求:(最多:10)
  3. 工作进程正在运行:0
  4. 管道实例模式:(最多:10)
  5. 应用程序队列中的请求:0

我们尝试按照 Thomas 的博客在注册表中将 maxConcurrentRequestsPerCPU 设置为“5000”:IIS 7.0 和 6.0 上的 ASP.NET 线程使用,但没有帮助。从以上数据来看,并发请求数卡在了10。

所以,问题是:

  1. 我们如何增加并发请求?主要目标是我们不希望长时间运行的远程调用来阻止短期运行的调用。
  2. 为什么最大请求执行数总是停留在 10?

提前致谢。

multithreading performance iis-7 remoting
1个回答
2
投票

Windows 7 有 20 个入站连接限制。 XP 及更早版本仅限于 10 个(不确定 Vista 是否如此)。这可能是导致你的表现下降的原因。尝试在没有任意连接限制的实际服务器操作系统上进行测试。

© www.soinside.com 2019 - 2024. All rights reserved.