KB-雙核? 四核? 到底要算幾顆CPU?
又是藏在心中很久的疑問,這幾天被要求提交伺服器規格,被迫花了點時間把它釐清楚。
我們都知道,微軟的Server系列產品,不同的版本可支援處理器(Processor)數與記憶體容量上限不同,以Windows 2003為例,共有Web Edition、Standard Edition、Enterprise Edition、Datacenter Edition等四個版本,其中Web版只支援到兩顆處理器、Standard版4顆、Enterprise版8顆、Datacenter版則可以到32顆。(詳細資料請看這裡)
不過,問題來了! 近代的CPU開始走多核風(Multicore),市面上的CPU,Dual Core雙核已經是基本要求,連Quad Core四核版本的CPU價位也日益平民化。當四核CPU愈來愈普及,雙CPU插座的主機板插上兩顆,Windows Task Manager裡頓時會冒出8顆CPU的使用率上下跳動,爽快歸爽快,另一個問題來了,依據前面所說的,Windows 2003 Standard Edition的CPU上限是4顆CPU,可以安裝在兩顆四核CPU的主機上嗎? 會不會Task Manager裡只能看到4顆CPU? 不然乾脆一點買Enterprise Editiony就不用擔心這麼多了? 別開玩笑了,依據官方報價,Standard與Enterprise版本的價差達四倍呢($999 vs $3,999)!!
因此我們要釐清的問題是,版本比較文件裡所說的4 way SMP support,指的是最多四顆實體的CPU呢? 或是超過一顆四核CPU就破表? (這個問題價值十萬元呢!)
有份官方文件可以精準地回答我們的疑問:
For Microsoft software with processor limits, each processor counts as a single processor regardless of the number of cores and/or threads that the processor contains. For example, Windows Server 2003 R2 Standard Edition can be used on a four-processor system, whether the processors in the system are single-core, hyperthreaded, or multicore.
換句話說,MS的規格文件裡,所提到的n-way SMP,是指"實體上"的n顆CPU,即便它可以開啟Hyper-Thread、或內建雙核或四核,不管Task Manager看到多少個CPU Usage,都只算一顆。所以如果有一台四個CPU Socket的主機器插上四顆四核CPU,在Windows Standard Edition裡看到16條CPU Usage Bar跳動,也是可能的。
題外話,並不是每家軟體廠商都採行像微軟一樣以實體處理器數量(或說Per CPU Socket)為認定基準,有些廠商會訂定每顆核心的換算比例(約當處理器數嗎? XD),例如: 一個核心相當於0.75個處理器,IBM甚至發明了Value Process Unit為CPU的計算能力計價。有興趣的可以看看這篇文章。