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服务器上的更多与更快的核心[关闭]的主要内容,如果未能解决你的问题,请参考以下文章