更多与网络服务器上更快的核心

时间:2008-08-06 18:28:05

标签: asp.net windows iis hardware

Dual vs. Quadcore的讨论与Quadcores本身一样古老,答案通常是“它取决于你的场景”。所以这里的场景是Web服务器(Windows 2003(不确定是x32还是x64),4 GB RAM,IIS,ASP.net 3.0)。

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

但是由于我没有太多的IIS负载平衡经验,因为我不想花很多钱才发现我做出了错误的选择,有没有更多经验评论的人是否更慢或更少更快的核心更好?

4 个答案:

答案 0 :(得分:15)

对于像Web服务器这样的东西,划分处理每个连接的任务是(相对)容易的。我说可以说Web服务器是并行代码最常见(和最常见)的用途之一。而且由于您可以将大部分处理功能分成多个离散线程,因此更多内核确实对您有所帮助。这是共享托管甚至可能的重要原因之一。如果像IIS和Apache这样的服务器软件无法并行运行请求,则意味着每个页面请求都必须以队列方式抛出......可能会使加载时间变得无法忍受。

这也是Windows 2008 Server Enterprise等高端服务器操作系统支持64核和2TB RAM的原因。这些应用程序实际上可以利用那么多内核。

此外,由于每个请求可能具有较低的CPU负载,因此您可能(对于某些应用程序)可以使用更慢的内核。但显然每个核心更快可以意味着能够更快地完成每项任务,理论上可以处理更多任务和更多服务器请求。

答案 1 :(得分:3)

我们在linux上使用apache,它会强制进程处理请求。我们发现更多内核可以帮助我们提高吞吐量,因为它们可以减少等待放在运行队列上的进程的延迟。我对IIS没有太多经验,但我想同样的场景适用于它的线程池。

答案 2 :(得分:3)

马克哈里森说:

  

我对IIS没有多少经验,但我认为同样的场景适用于其线程池。

确实 - 更多内核=同时运行更多线程。 IIS本质上是多线程的,并且很容易利用它。

答案 3 :(得分:1)

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

Atleat Jeff相信Quadcore is better