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

Dual vs. Quadcore的讨论与Quadcore本身一样古老,答案通常是“取决于您的场景”。所以这里的情况是一个Web服务器(Windows 2003(不知道如果x32或x64),4 GB RAM,IIS,ASP.net 3.0)。

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

但是由于我没有太多的IIS负载平衡的经验,并且因为我不想花很多钱才能发现我做出了错误的选择,那么有多一点经验的人可以评论一下更慢或更快的内核更好?

0

4 答案

我们在linux上使用apache,它分派一个进程来处理请求。我们发现更多的内核可以帮助我们的吞吐量,因为它们减少了等待放在运行队列中的进程延迟。我对IIS没有多少经验,但我想象它的线程池也适用同样的场景。

0
额外

对于像网络服务器这样的东西,划分处理每个连接的任务是相对容易的。我认为可以肯定地说,Web服务器是并行代码最常见(也是最彻底的)用法之一。而且,由于您可以将大部分处理分解为多个独立线程,所以更多的内核实际上对您有益。这是共享主机甚至有可能的一个重要原因。如果像IIS和Apache这样的服务器软件无法并行运行请求,这意味着每个页面请求都必须以队列方式抛出......可能会使加载时间变得非常缓慢。

这也是为什么像Windows 2008 Server Enterprise这样的高端服务器操作系统支持64核心和2TB内存等东西的原因。这些应用程序实际上可以利用多个内核。

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

0
额外

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

Atleat Jeff相信 Quadcore更好

0
额外

马克哈里森说:

我对IIS没有多少经验,但我想象它的线程池也适用相同的场景。

事实上 - 更多的核心=更多的线程同时运行。 IIS本质上是多线程的,并且容易利用这一点。

0
额外