IIS7.5 64bit一次处理每个逻辑cpu多少个线程?

时间:2013-03-12 22:12:06

标签: iis iis-7 iis-7.5

IIS7.5 64bit可以同时处理每个逻辑cpu多少个线程?我已经听到每个逻辑CPU有12个IIS处理线程,但我也听说每个逻辑CPU有100个IIS处理线程。

更新

很抱歉没有具体,但我指的是IIS线程池线程。那是当一个http get请求进入我的webapi服务器时,我的服务器可以同时处理多少并发的http get请求(每个逻辑cpu)?我试图根据我的服务器可以处理的请求数量计算一些阈值容量数,这取决于我获得的平均响应时间,即〜500ms。

1 个答案:

答案 0 :(得分:4)

http://msdn.microsoft.com/en-us/library/system.threading.threadpool

  

每个进程有一个线程池。从.NET开始   框架4,进程的线程池的默认大小取决于   有几个因素,例如虚拟地址空间的大小。一个   进程可以调用GetMaxThreads方法来确定数量   线程。可以通过更改线程池中的线程数   使用SetMaxThreads方法。每个线程使用默认堆栈   大小并以默认优先级运行。

http://blogs.msdn.com/b/tmarq/archive/2007/07/21/asp-net-thread-usage-on-iis-7-0-and-6-0.aspx

  

因此对于IIS 7.0集成模式,命名为DWORD   内部的 MaxConcurrentRequestsPerCPU   HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ ASP.NET \ 2.0.50727.0确定   每个CPU的并发请求数。默认情况下,它没有   存在,每个CPU的请求数限制为12.如果你是   好奇,看看ASP.NET请求执行速度有多快   线程切换,可以将值设置为0.这将导致请求   在IIS I / O线程上执行,而不切换到CLR   线程池线程。我不建议这主要是因为动态   请求需要很长时间才能相对于静态请求执行,并且   我相信系统的整体性能更好   线程切换。但是,这很重要,如果您的申请   由主要或完全异步请求组成,默认情况下   MaxConcurrentReqeustsPerCPU限制为12将限制太多   你,特别是如果请求很长时间运行。在这种情况下,我   建议将 MaxConcurrentRequestsPerCPU 设置为非常高   数。实际上,在v4.0中,我们更改了默认值    MaxConcurrentRequestsPerCPU 到5000.没什么特别的   5000,除了它是一个非常大的数字,因此将允许   大量异步请求同时执行。