2008-08-06 30 views
8

Dual vs. Quadcore的討論與Quadcore本身一樣古老,答案通常是「取決於您的場景」。所以這裏的情況是一個Web服務器(Windows 2003(不知道如果x32或x64),4 GB RAM,IIS,ASP.net 3.0)。Webserver上的更多與更快的內核

我的印象是,Web服務器中的CPU不需要很快,因爲請求通常相當輕量級,所以擁有更多(更慢)的內核應該是更好的選擇,因爲我們有很多小的請求。

但因爲我沒有與IIS的負載均衡,因爲我不想花很多錢才發現我做了錯誤的選擇,太多的經驗可有人誰擁有更多的經驗評論無論更慢還是更快速的內核更好?

回答

15

對於像網絡服務器這樣的東西,劃分處理每個連接的任務是相對容易的。我認爲可以肯定地說,Web服務器是並行代碼最常見(也是最徹底的)用法之一。而且,由於您可以將大部分處理分解爲多個獨立線程,所以更多的內核實際上對您有益。這是共享主機甚至有可能的一個重要原因。如果像IIS和Apache這樣的服務器軟件無法並行運行請求,這意味着每個頁面請求都必須以隊列方式拋出......可能會使加載時間變得非常緩慢。

這也是爲什麼高端服務器操作系統,如Windows Server 2008企業版支持像64個核心和2TB RAM。這些應用程序實際上可以利用多個內核。

而且,因爲每個請求可能具有低CPU負載,你也許可以(對某些應用)更慢的核心脫身。但是,顯然讓每個內核更快可以意味着能夠更快地完成每項任務,理論上可以處理更多的任務和更多的服務器請求。

1

越好越好。隨着編程語言開始變得越來越複雜和抽象,需要的處理能力就越多。

Atleat Jeff相信Quadcore is better

3

我們在Linux上使用apache,它分叉一個進程來處理請求。我們發現更多的內核可以幫助我們的吞吐量,因爲它們減少了等待放在運行隊列中的進程延遲。我對IIS沒有多少經驗,但我想象它的線程池也適用同樣的場景。

3

馬克·哈里森說:

我沒有與IIS太多的經驗,但我想是相同的情況與它的線程池。

事實上 - 更多核心=更多的線程同時運行。 IIS本質上是多線程的,並且容易利用這一點。