asp.net -Web服务器上的内核更多而速度更快

Translate

关于双核与四核的讨论与四核本身的讨论一样古老,答案通常是“取决于您的情况”。因此,这里的场景是Web服务器(Windows 2003(不确定x32还是x64),4 GB RAM,IIS,ASP.net 3.0)。

我的印象是Web服务器中的CPU不需要那么快,因为请求通常很轻便,因此,当我们收到许多小的请求时,拥有更多(较慢)内核应该是一个更好的选择。

但是,由于我在IIS负载平衡方面没有太多经验,并且由于我不想花很多钱只是为了发现自己做出了错误的选择,因此,有更多经验的人可以评论是否更快或更慢的内核更好?

This question and all comments follow the "Attribution Required."

所有的回答

Translate

对于像Web服务器这样的东西,划分处理每个连接的任务是(相对)容易的。我可以肯定地说,Web服务器是并行代码最常见(且已淘汰)的用途之一。并且由于您能够将大部分处理分为多个离散线程,因此更多的内核确实可以使您受益。这是什至可以共享主机的重要原因之一。如果IIS和Apache之类的服务器软件无法并行运行请求,则意味着每个页面请求都必须以队列方式抛出,这可能会使加载时间变得异常缓慢。

这也是为什么高端服务器操作系统(如Windows 2008 Server Enterprise)支持诸如64核和2TB RAM之类的原因。这些应用程序实际上可以利用许多核心。

另外,由于每个请求的CPU负载可能都很低,因此(对于某些应用程序)您可能会放弃使用速度较慢的内核。但是,显然,使每个内核速度更快可能意味着能够更快地完成每个任务,并且理论上可以处理更多任务和更多服务器请求。

来源
Translate

我们在Linux上使用apache,它派生了一个处理请求的进程。我们发现更多的内核有助于提高吞吐量,因为它们减少了等待放入运行队列的进程的延迟。我在IIS方面没有太多经验,但是我想同样的情况适用于它的线程池。

来源
Translate

马克·哈里森(Mark Harrison)说:

我在IIS方面没有太多经验,但是我想同样的情况适用于它的线程池。

确实-更多的核心=更多的线程可以同时运行。 IIS本质上是多线程的,并且可以轻松利用此优势。

来源
Translate

越多越好。随着编程语言开始变得越来越复杂和抽象,将需要更多的处理能力。

阿特拉特·杰夫(Atleat Jeff)相信四核更好.

来源