0

在我们的 ASP.NET 应用程序中,所有方法都使用async/await关键字来提高 IO 性能。但是,我现在想知道,maxIoThreads在使用异步操作方法时,每个 CPU 核心的推荐连接池大小和选项是多少。连接池的默认值为maxIoThreads20 和 100。同样不清楚的是,这两个选项是否仅针对正在运行的线程或所有处于“等待”状态的执行代码定义限制。

4

1 回答 1

3

在 ASP.NET 上,async实际上await减少正在使用的线程池线程数。除非您不正确地实现了某些东西(例如,使用Task.Run),否则这是正确的。

从 .NET 4.5 开始,默认的 ASP.NET 设置对于异步服务器是正确的。唯一推荐的更改是:

  1. 将 IIS HTTP.SYS 队列限制从 1000 增加到 5000。
  2. (仅当您的异步请求依赖于其他 HTTP/网络请求时)ServicePointManager.DefaultConnectionLimit从其默认值(核心数的 12 倍)增加。
于 2013-10-30T17:10:17.227 回答