1. 程式人生 > >CPU主頻和核心數量以及伺服器效能之間的關係

CPU主頻和核心數量以及伺服器效能之間的關係

在系統維護工作中曾經被問到CPU核心數量和主頻之間的關係的一個問題,當時和伺服器廠家磨嘰了幾個小時也沒有得到一個令人信服的答案,只好通過查閱相關資料以及和同事討論後有了個清晰的答案。現將該問題整理了一下分享出來,以供大家學習和參考。

疑惑1:伺服器的主頻怎麼計算?單顆主頻*核心數量嗎?

疑惑2:伺服器cpu的效能依賴於cpu的主頻?

疑惑3:多核處理出現的原因?

疑惑4:多核處理器的優勢在哪裡?

疑惑5:多核處理器帶來的挑戰是什麼?

疑惑6:如何發揮多核伺服器應有的效能?

1. 伺服器的主頻怎麼計算?單顆主頻*核心數量嗎?

伺服器cpu的主頻和核心的數量是沒有關係的,也就是說如果你的cpu的一個執行緒(一個core)的主頻是2GHZ的話那麼你的伺服器的主頻就是2GHZ。

2. 伺服器cpu的效能依賴於cpu的主頻?

cpu的效能依賴於CPU的主頻嗎?非也,主頻只是其中一個比較重要的參考依據而已,其中還有其他重要的引數指標決定了cpu的效能。

其中CPU的效能由主頻、管線架構或長度、功能單元數目、快取設計四個方面決定,我捫常將“管線架構或長度、功能單元數目、快取設計”這三個方面統稱為CPU的架構,也就是說CPU的效能由CPU的主頻和CPU的架構這兩個方面來綜合決定。

從以往CPU發展歷史來看,CPU頻率的增長帶來的是效能上量的增長,而架構的改變往往帶來其效能上質的飛躍,所以相對而言同樣的架構,主頻高低不同,CPU處理能力才有可比較性;而不同架構的CPU之間效能的差別就可能給人們帶來完全不同的體驗了。也正是CPU架構方面的原應才造成了很多同頻的AthlonXP比P4處理器更快這一現實。

所以只有在同一家族的CPU中進行比較,核心數量、主頻與CPU的執行速度才有正比關係,還有影響的因素是2、3級快取的大小。核心版本和工藝的升級也有影響。一般在同一家族的CPU中,核心越多、主頻越高、快取越多、版本越新的CPU越快。

3. 為什麼會出現多核處理器呢?

多核技術的開發源於工程師們認識到,僅僅提高單核晶片的速度會產生過多熱量且無法帶來相應的效能改善,先前的處理器產品就是如此。他們認識到,在先前產品中以那種速率,處理器產生的熱量很快會超過太陽表面。即便是沒有熱量問題,其價效比也令人難以接受,速度稍快的處理器價格要高很多。

CPU從誕生之日起,主頻就在不斷的提高,如今主頻之路已經走到了拐點。面對主頻之路走到盡頭,Intel和AMD開始尋找其它方式用以在提升能力的同時保持住或者提升處理器的能效,而最具實際意義的方式是增加CPU內處理核心的數量。

英特爾工程師們開發了多核晶片,使之滿足“橫向擴充套件“(而非“縱向擴充“)方法,從而提高效能。

4. 多核處理器的優勢有哪些?

該架構實現了“分治法“戰略。通過劃分任務,執行緒應用能夠充分利用多個執行核心,並可在特定的時間內執行更多工。多核處理器是單枚晶片(也稱為“矽核“),能夠直接插入單一的處理器插槽中,但作業系統會利用所有相關的資源,將它的每個執行核心作為分立的邏輯處理器。

通過在多個執行核心之間劃分任務,多核處理器可在特定的時鐘週期內執行更多工。多核架構能夠使目前的軟體更出色地執行,並建立一個促進未來的軟體編寫更趨完善的架構。儘管認真的軟體廠商還在探索全新的軟體併發處理模式,但是,隨著向多核處理器的移植,現有軟體無需被修改就可支援多核平臺。作業系統專為充分利用多個處理器而設計,且無需修改就可執行。為了充分利用多核技術,應用開發人員需要在程式設計中融入更多思路,但設計流程與目前對稱多處理(SMP) 系統的設計流程相同,並且現有的單執行緒應用也將繼續執行。現在,得益於執行緒技術的應用在多核處理器上執行時將顯示出卓越的效能可擴充性。

5. 多核處理器帶來的挑戰又是什麼?

挑戰一:與單核處理器相比,多核處理器在體系結構、軟體、功耗和安全性設計等方面面臨著巨大的挑戰。

挑戰二:許多歷史程式沒有采用並行程式設計,例如一些檔案壓縮軟體、部分遊戲軟體等等。對於這些單執行緒的程式,單獨執行在多核處理器上與單獨執行在同樣引數的單核處理器上沒有明顯的差別。這樣會導致伺服器資源的閒置和浪費從而無法發揮伺服器效能。

6. 如何更好的發揮多核伺服器的效能?

1)程式採用執行緒級並行程式設計,那麼這個程式在執行時可以把並行的執行緒同時交付給多個核心分別處理,因而程式執行速度得到極大提高。這類程式有的是為多路工作站或伺服器設計的專業程式,例如專業影象處理程式、非線視訊編緝程式、動畫製作程式或科學計算程式等。

2)日常應用中的另一種模式是同時執行多個程式。許多程式沒有采用並行程式設計,例如一些檔案壓縮軟體、部分遊戲軟體等等。對於這些單執行緒的程式,單獨執行在多核處理器上與單獨執行在同樣引數的單核處理器上沒有明顯的差別。但是,由於日常使用的最最基本的程式——作業系統——是支援並行處理的,所以,當在多核處理器上同時執行多個單執行緒程式的時候,作業系統會把多個程式的指令分別傳送給多個核心,從而使得同時完成多個程式的速度大大加快。