Web服务器上的更多与更快的核心[关闭]

Posted

技术标签:

【中文标题】Web服务器上的更多与更快的核心[关闭]【英文标题】:More vs. Faster Cores on a Webserver [closed] 【发布时间】:2010-09-05 10:49:53 【问题描述】:

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

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

但是由于我对 IIS 负载平衡没有太多经验,而且我不想花很多钱才发现自己做出了错误的选择,所以有经验的人可以评论一下更慢或更少更快的核心是否更好?

【问题讨论】:

【参考方案1】:

对于像网络服务器这样的东西,划分处理每个连接的任务是(相对)容易的。我可以肯定地说,Web 服务器是并行代码最常见的(并且已经解决的)用途之一。而且由于您能够将大部分处理拆分为多个离散线程,因此更多的内核确实对您有利。这是共享主机成为可能的重要原因之一。如果像 IIS 和 Apache 这样的服务器软件不能并行运行请求,这意味着每个页面请求都必须以队列方式发出……可能会使加载时间变得难以忍受。

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

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

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

马克哈里森说:

我对 IIS 没有太多经验,但我想同样的场景也适用于它的线程池。

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

【讨论】:

【参考方案4】:

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

Atletat Jeff 相信Quadcore is better。

【讨论】:

以上是关于Web服务器上的更多与更快的核心[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

AJAX

浅析http缓存

将本地核心数据数据库与 Web 服务同步

用于 Lua Web 开发的 Web 服务器 [关闭]

将核心数据与 Web 服务同步

您如何将基于 Scala 的 Web 服务器与其他 Web 框架进行比较? [关闭]