【发布时间】:2020-03-18 03:28:31
【问题描述】:
我在 docker 容器中部署了一个 ASP .NET Core 3.0 Web api 应用程序。看起来可用于处理请求的最大线程数约为 240(因为它似乎在某些节点上在一段时间内达到最大值,与垃圾收集事件相关)。看起来这不是内存问题,因为只有大约 1/5 的配置内存在使用中。有没有办法增加最大线程数?我可以在 Startup.cs 中设置 ThreadPool.SetMaxThreads() 吗?
【问题讨论】:
-
不要增加线程数,而是尝试分析您的应用程序并查看哪个线程被锁定,如果您正确使用
async await,您将不必担心线程被锁定。由于同步 API,线程大多被锁定。 -
线程由操作系统或服务器管理。在 IIS 中,您可以在相关应用程序池中设置最大工作进程数。
-
它是一个运行 Kestrel 的 docker 镜像。
标签: c# asp.net-core threadpool