首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在TCP上增加.NET远程处理所使用的线程数?

如何在TCP上增加.NET远程处理所使用的线程数?
EN

Stack Overflow用户
提问于 2015-04-03 23:29:45
回答 3查看 1.8K关注 0票数 11

我们试图增加.NET远程处理在TCP上使用的线程数。我们尝试过更改ThreadPool.SetMinThreads,但是我们的压力测试表明,.NET远程处理只能处理大约100个并发请求。(不过,这并不是一个硬性限制)。在任务管理器中,我们可以看到远程处理服务器进程线程数从11增长到大约80,然后在压力测试之后下降到11。我们正在运行一个ASP.NET 4.0应用程序。

EN

回答 3

Stack Overflow用户

发布于 2015-04-11 04:15:26

要而论之。远程处理服务器由windows服务托管,远程处理客户端由IIS托管。要完成压力测试,您可以使用Apache,它调用远程处理客户端,后者调用远程处理服务器。您注意到远程处理服务器处理的并发请求不超过100个,尽管您增加了远程处理服务器上线程池中的最大线程数。

如果我说的都是真的,我认为这里遗漏了一件事,即IIS也有一个线程的限制,可以用来处理请求。您可以从Apache向远程处理客户端发送1000个请求,但只能同时处理其中100个请求。我怀疑这可能是个原因。

为了增加IIS的线程数量,我建议您尝试:

  • 检查配置(请参阅此问题)。
  • 尝试在IIS上使用SetMinThreads

我的最后一个评论是,您必须记住,线程池中的线程数量太少,线程数量太多都不是好事。这两种情况都会影响性能。

票数 4
EN

Stack Overflow用户

发布于 2015-04-12 14:23:13

您确定瓶颈是线程而不是网络连接吗?默认情况下,.net的每个远程IP可用的套接字数量相当有限。这适用于远程处理、http (WCF、web服务客户端)等。

您可以在你的app config/web.config中在system.net/connectionManagement下覆盖这个命令,如果您看到的是这个,例如:

代码语言:javascript
运行
复制
<configuration>
...
  <system.net>
    <connectionManagement>
      <add address="*" maxconnection="1000"/>
    </connectionManagement>
  </system.net>

有关该配置设置的更多详细信息,请参见以下内容:https://msdn.microsoft.com/en-us/library/fb6y0fyc%28v=vs.110%29.aspx

票数 1
EN

Stack Overflow用户

发布于 2015-04-10 19:51:54

检查您的返回值 of SetMinThreads。

如果指定负数或大于活动线程池线程最大数目的数字(使用GetMaxThreads获得),则SetMinThreads将返回false,并且不会更改最小值中的任何一个。(链接)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29441068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档