Niagara提高效能輸出的8核心、32執行緒架構
經常使用巴哈姆特電玩資訊站的愛好者,最近有沒有感覺到,在三月的某週,連上巴哈姆特網站討論區的速度「好像變快了」?
事實上,巴哈姆特網站討論區所採用的伺服器群,在瞬間湧入500個使用者時,反應時間從原本的8秒鐘,縮短到令人難以置信的「0.3秒」,只因為將現有的Pentium 2.4GHz網站伺服器群,更換成一臺Sun Fire T2000-以8核心/32執行緒的UltraSPARC T1「Niagara」處理器作為心臟的2U伺服器
他山之石:Google對伺服器處理器技術趨勢的看法
Google的Luiz Andre Barroso在ACM發表了一篇名為「An Economic Case for Chip Multiprocessing」的文章,他認為未來的資料中心不需要具備非循序指令執行能力(OOOE,Out-Of-Order Execution)的處理器,而應採用大量簡單循序執行(In-Order)核心的多核心處理器。
真實世界的測試:巴哈姆特電玩資訊站
再多的效能標竿測試,都遠不如一個實際佈署的真實案例來得有說服力。我們與巴哈姆特電玩資訊站合作,將借測的Sun Fire T2000,用來取代巴哈姆特數臺負荷最重的網站討論區伺服器,檢視Niagara的實際能耐,以及應用上的相關問題。
極限效能的測試:Apache JMeter壓力測試
可承受高輸出量的網站架構,並非僅仰賴高效能的網站伺服器,而需要整體的規劃。我們在巴哈姆特與Sun技術顧問的協助下,在Sun教育訓練中心建置一個壓力測試環境,除了找出Sun Fire T2000的極限效能外,也從測試的過程中,瞭解導入這樣高效能網站伺服器的過程中,可能會遭遇的問題。
Niagara應用上的限制與瓶頸
經過長期的部署與實測,我們已經證實Niagara的效能,的確相當出色,足以取代數臺既有的x86網站伺服器。Solaris 10的功能與管理性,也易於管理維護工作,和Niagara堪稱天作之合,像Solaris 10就具備動態調整Niagara的32個邏輯處理器,分配至不同Solaris Container的彈性。不過,正如同硬幣都有正反兩面,在光鮮亮麗的測試數據背後,依舊暗藏諸多應用上的限制與瓶頸。
從Niagara檢視伺服器處理器的技術趨勢
對很多企業來說,雙核心可能還只是陌生的名詞,看到市場上突然就出現「8核心」的產品,也許會感到非常震驚。但不可否認的,無論成敗與否,多核心處理器已經是必然的技術趨勢,值得企業關注。
|
廠 商 觀 點 |
|
![]() |
Solaris才是Niagara最堅強的後盾 Sun可延展系統事業群執行副總裁顏維倫:其實純粹從硬體技術的角度而言,Niagara並沒有明顯的門檻與突破,但要讓這樣的產品實用化,關鍵是軟體,而Solaris就是Niagara的後盾。 |
|
用 戶 觀 點 |
|
![]() |
效能表現出色,但導入門檻較高 巴哈姆特技術部經理葉昌福:我們認為Niagara的效能非常出色,設計方向的確適用於網站伺服器,不過平心而論,系統的售價還是太高,而Solaris更是導入前的一大門檻。 |
Niagara提高效能輸出的8核心、32執行緒架構
|
|
|
透過多執行緒及多核心架構,針對Throughput Computing而設計的處理器,可以大幅降低記憶體延遲所浪費的運算效能。資料來源:Sun。 |
經常使用巴哈姆特電玩資訊站的愛好者,最近有沒有感覺到,在三月的某週,連上巴哈姆特網站討論區的速度「好像變快了」?
事實上,巴哈姆特網站討論區所採用的伺服器群,在瞬間湧入500個使用者時,反應時間從原本的8秒鐘,縮短到令人難以置信的「0.3秒」,只因為將現有的Pentium 2.4GHz網站伺服器群,更換成一臺Sun Fire T2000-以8核心/32執行緒的UltraSPARC T1「Niagara」處理器作為心臟的2U伺服器。
2002年六月,Sun宣佈併購Afara Websystem,取得該公司針對網站伺服器應用的多核心處理器設計。2003年八月的IEEE Hot Chips 15論壇,Sun闡述CMT(Chip Multi-Threading),藉由多核心處理器來改善多執行緒應用程式的執行效能,2004年二月進一步提出「Throughput Computing」概念,以提升網路處理的效能為思考核心,整合多核心處理器、多執行緒架構、以及更有效率的TCP/IP通訊協定堆疊,設計出兼顧高效能、低耗電及低成本的處理器,在眾多伺服器廠商中顯得獨樹一幟。
歷經三年多的醞釀與發展,2005年11月,Sun終於正式推出代號「Niagara」的UltraSPARC T1處理器,與採用該處理器的Sun Fire T1000/T2000「CoolThreads」伺服器。
根據Sun的時程表,預定將在2007年推出第二代Niagara處理器,65nm製程,時脈從1.4GHz起跳,內建更大的快取記憶體。每個核心的執行緒數目從4條增加至8條,總計64條執行緒。為了改善浮點運算效能,每個核心都擁有獨立的浮點運算器(目前是8核心共用)。第二代Niagara採用改良後的密碼處理單元,支援FB-DIMM記憶體,以減少腳位數,縮小封裝體積,增加記憶體容量與頻寬。
為了驗證Sun UltraSPARC T1的效能表現,是否真如Sun過去數年所宣稱的如此強大,我們將借測的Sun Fire T2000伺服器(時脈1.2GHz、8核心、32執行緒處理器與32GB DDR2-533記憶體),在Sun兩位技術顧問的協助下,用來替代巴哈姆特既有的網站伺服器群,經由實際部署在一個大型商業網站的過程,描繪Niagara的應用全貌,以及導入過程中所衍生的相關議題。
我們也專訪Sun可延展系統事業群執行副總裁顏維倫,與巴哈姆特參與該測試的技術人員,了解Sun發展Niagara的背景與想法,以及用戶的實際使用感想。
現有處理器架構成為網站伺服器的效能瓶頸
在了解Sun的獨特訴求之前,我們先來探討,現有的處理器架構,究竟適不適合以網路為主要應用環境的伺服器,這樣才能了解Throughput Computing的動機之所在。
"複雜處理器架構並不適合網站"
自從1990年代開始,為了追求更高的IPC(Instruction Per Cycle,每個時脈週期能夠同時執行的指令數)及更高的運作時脈,處理器微架構逐步朝向更寬執行單元、更深指令執行管線的路線發展,也連帶的造成更複雜、更昂貴與更耗電的處理器。
不過,對於網路環境而言,伺服器及處理器廠商所投資的龐大成本,卻不見得能得到應有的效益。相較於揮霍電路實作極為複雜的單一處理器核心,多個簡單核心更能改善多執行緒應用程式。
"分支預測與非循序執行毫無效益"
處理器指令執行管線越來越深,複雜的分支預測與非循序執行機制成為高速處理器的必備功能,但是目前不少物件導向高階語言,如Java、C++和C#等,大量的虛擬函式指標以及間接分支,都容易降低處理器分支預測機制的表現,尤其當處理器的指令管線深度越來越深,分支預測機制的傷害就越來越大,而非循序執行機制則大幅增加處理器的複雜度。
"加大快取容量不如增加記憶體頻寬"
以大型化的快取記憶體為例,往往網站伺服器所處理的資料,使用的重複性及區域性都不高,過高的快取記憶體誤失率,以及所衍生的存取延遲,反而會降低效能。如此一來,與其增加快取記憶體容量,還不如設法縮短快取記憶體的存取延遲、避免快取資料一致性(Cache Coherence)機制,以及提升記憶體頻寬與容量。
動態物件導向語言的動態記憶體配置,降低了快取記憶體的命中率,像Java的垃圾收集機制更會導致不需要的快取記憶體配置動作。至於多人多工應用所衍生的多執行緒環境,以及處理器效能及記憶體頻寬之間日益成長的差距,這些都不是現有處理器(追求高IPC及高時脈)所能滿足的。
"浮點運算器形同浪費"
隱而不現的,多數企業伺服器甚少使用浮點運算,但目前多數的處理器都擁有高效能的浮點運算器,佔掉了相當比例的電路成本與發熱量,卻又用不到,極度缺乏成本效益。
降低功耗大作戰
效能好不好是一回事,節節高升的處理器耗電量,才是企業最迫切的問題,也導致近來「效能/功耗比」蔚為處理器技術發展的新風潮。
更重要的是,隨著刀鋒與機架式伺服器等高密度運算環境的普及,處理器的發熱量及耗電量都成為系統設計上的重要考量,處理器越耗電,意味著更不容易縮小伺服器體積,以及提升伺服器的密度,越耗電的伺服器,也代表更高的機房維護成本,尤其是電費以及空調系統的投資。但很明顯的,現在的處理器都越來越熱,也都越來越貴,耗電量動輒上百瓦、單價高達數千美元的伺服器處理器比比皆是,這些都大幅增加企業部署伺服器的成本。
總而言之,「傳統架構」處理器的已經無法滿足今日企業伺服器的需要,必須另闢他途,針對上述問題對症下藥,重新打造最具成本效益的處理器。Sun的Niagara就是首款針對網站與Java應用程式伺服器,所量身訂做的處理器。
有如瀑布般的多執行緒效能,與清涼的溫度
Niagara內建8個64位元SPARC V9處理器核心,每個核心同時執行4條粗質執行緒,所以邏輯上等同於32個處理器,可同時執行32條執行緒,遠超過現在所有的伺服器處理器,共享式3MB第二階快取記憶體可提升快取容量的使用效率,降低快取資料一致性機制的負面影響。
為了改進記憶體系統的可靠性,Niagara的暫存器(Register)和虛擬實體位址緩衝器(TLB,Translation Lookaside Buffer)分別支援ECC糾錯碼與Parity偵錯碼,明顯勝過隨處可見的Xeon與Opteron。浮點運算是Niagara應用上的一大罩門,僅內建一組由8核心共用的浮點運算器,但針對網站伺服器的需求,每個核心各自內建一組輔助密碼運算器(MAU,Modular Arithmetic Unit),可加速SSL與RSA公開金鑰等運算。
Niagara的核心結構相當簡單,個別擁有16kB的第一階指令快取及8kB的資料快取,存取延遲僅需一個時脈週期,由4個執行緒所共用。由於每個核心都是採用簡單的6階單指令發出管線,所以它並不是像同步多執行緒行,而是採取碰上很長的延遲(如快取誤失)後再交替執行的粗質多執行緒。
高頻寬記憶體與連結架構則是另一個重點,Niagara內建了4通道128位元DDR2-533(實際上以DDR2-400運作)記憶體控制器,理論記憶體總頻寬高達25.6GB/s,最多可安裝128GB容量,支援ChipKill ECC記憶體資料可靠性功能,可啟動Memory Sparing功能,保留部份記憶體模組供損壞熱備援之用。Niagara的8個核心透過一個理論頻寬134GB/s的crossbar交換器,交互連結至記憶體控制器與I/O子系統。
Niagara的時脈並不高,最高僅1.2GHz,標準功耗僅72W,尖峰功耗也不超過79W,遠低於現有動輒一百多瓦的「不發光燈泡」。目前第一代Niagara並未支援多處理器,所以CoolThreads伺服器的結構就極為單純,僅有一顆處理器與數量驚人的記憶體,Niagara搭配32GB記憶體時,系統滿載時也僅有約230W的尖峰耗電量,還低於兩顆雙核心Xeon處理器的總和,不但利於散熱,毋需複雜的冷卻系統,只要一臺325W電源供應器即可滿足整臺伺服器的需要。
極簡網站伺服器架構
因Niagara在網站與Java應用程式伺服器的執行效率,遠邁既有的處理器,「理論上」可用少數的Niagara伺服器,取代現有的龐大網站伺服器叢集,大幅精簡所需的機櫃空間、耗電、空調,以及管理的人力成本。
尤其網站應用中,部署大量廉價的伺服器「以量取勝」會比採用單一強大的伺服器來得更有經濟效益,因為系統效能的瓶頸都在I/O上,處理器大多數時間都在閒置狀態,採用高時脈處理器不啻是一種浪費。也因此,網站伺服器群多半都是依據需求而逐步添購市面上主流的x86伺服器,但x86伺服器規格一直推陳出新,所以導致伺服器規格非常紊亂,增加系統維護管理上的負擔,加上近來耗電量逐漸失控的x86處理器,更進一步加重電費與空調的開銷。
Sun的一小步,多核心趨勢的一大步
不可否認的,多核心已經是處理器技術發展的必然趨勢,從1999年首款雙核心伺服器處理器IBM Power4「Regatta」開始,歷經六年的時間,雙核心處理器才逐漸成為伺服器市場的主流,而Sun一口氣推出8核心的產品,勢必將刺激多核心的發展腳步,也許在未來,處理器的核心數目將如同摩爾定律十八個月即可增加一倍。核心數目的成長,也連帶的牽動作業系統與應用軟體的發展趨勢,尤其是針對多核心架構最佳化。
此外,Sun在Niagara採取的極簡架構核心設計路線,堪稱是對現有「恐龍化」處理器架構的一大反動,也可能帶動伺服器與桌上型處理器的設計開始分道揚鑣,廠商針對不同特定需求開發特殊處理器的風潮。如果此事成真,日後的伺服器市場將更加的熱鬧,處理器架構發展回歸二十年前百家爭鳴的局面,並非遙不可及。文⊙劉人豪他山之石:Google對伺服器處理器技術趨勢的看法
Niagara究竟是不是必然的技術趨勢?我們可以先參考一下Google的觀點與看法。
Google的Luiz Andre Barroso在ACM發表了一篇名為「An Economic Case for Chip Multiprocessing」的文章,他認為未來的資料中心不需要具備非循序指令執行能力(OOOE,Out-Of-Order Execution)的處理器,而應採用大量簡單循序執行(In-Order)核心的多核心處理器。這篇文章的重點大致如下:
首先,耗電量已經成為伺服器重要的成本因素,但近年來處理器廠商所努力宣揚的「效能/功耗比」,卻一直停滯不前。以低階x86伺服器來說,只要使用四年,電費成本就高達硬體採購成本的40%。
其次,為了攤平硬體研發成本,往往個人電腦所使用的桌上型處理器和伺服器處理器採用相同的核心,例如AMD Opteron和Athlon 64都是K8微架構、英特爾Xeon與Pentium 4皆為NetBurst、IBM PowerPC 970沿用Power4等等,但兩者的應用環境有差異很大,伺服器環境不但需要較高的執行緒平行化(TLP,Thread Level Parallelism),而且也早已具備大量高度平行化的應用程式,個人市場則反。換言之,目前這些追求指令平行化(ILP,Instruction Level Parallelism)伺服器處理器,並不見得適合「實際上的應用」。
其實Luiz Andre Barroso本人當年在DEC/Compaq時,就是負責「Piranha計畫」,採用8個簡單循序執行、單指令發出率的Alpha處理器核心,時脈僅500MHz(改良後的版本是1.25GHz),整合理論頻寬12.8GB/s的Direct Rambus記憶體控制器與網路通訊協定引擎,以追求執行緒平行化的效能與最高的效能/功耗比。
當然,這個計畫並沒有實現,但我們也可以說,Niagara就是Piranha「精神上的後代」。RMI近期發表8核心/32執行緒MIPS64的XLR處理器,也是基於相同思維而誕生的產物。真實世界的測試:巴哈姆特電玩資訊站
再多的效能標竿測試,都遠不如一個實際佈署的真實案例來得有說服力。我們與巴哈姆特電玩資訊站合作,將借測的Sun Fire T2000,用來取代巴哈姆特數臺負荷最重的網站討論區伺服器,檢視Niagara的實際能耐,以及應用上的相關問題。
巴哈姆特伺服器架構的現況
巴哈姆特已經有九年的歷史,在商業化之前,巴哈姆特只倚賴一臺Pentium 100電腦同時支撐著BBS與WebBBS,公司成立以後,自然就不能延用如此陽春的系統了。在早期,巴哈姆特先自行組裝一臺「光華牌」的雙Pentium II 450MHz電腦供網站之用,再組裝一臺雙Pentium III 850MHz的系統,用來專職執行資料庫。
後來,除了先天架構難以分散化的BBS外,網站和資料庫伺服器都穩定的成長,六年來就這樣一路擴充到10臺以上的規模(不包含第二線)目前第一線就總計有8臺網站(4臺討論區,3臺貼圖區,1臺首頁)、1臺BBS,以及4臺資料庫伺服器(其中1臺專門作為討論區之用)。
但也因此,巴哈姆特的伺服器群都是依據需求逐步添購,導致伺服器規格非常紊亂,包含從商業化初期的Pentium II 450MHz到近期採購的雙Xeon DP 3.2GHz系統,造成系統管理上的負擔。尤其壓力最重的網站伺服器,難以採用少數幾台效能強大的伺服器應付龐大的流量,只能以量取勝,壓力最重者,莫過於那4臺討論區伺服器,這也是本次測試「替代」的目標。
效能相當出色,但所費不貲
巴哈姆特並非直接取代那4臺Pentium 4 2.4GHz/1GB記憶體的網站討論區伺服器,而是先加入Sun Fire T2000、同時運作一段時日確定穩定可靠後,再讓Sun Fire T2000獨挑大樑整整一週,觀察其效能表現。事後證明Niagara系統表現相當出色,根據巴哈姆特的觀察與評估,一臺1.2GHz/8核心、安裝32GB記憶體的Sun Fire T2000,大概還保有近一半的餘裕,換言之,相當於現有伺服器群的兩倍效能,但耗電量與機架空間都僅需現有架構的一半。
不過,這樣的一臺2U伺服器,就需要將近一百萬的價格,幾乎是巴哈所有伺服器總價的1.5倍,這樣的頂級「效能/功耗比」是否划算,就留給你自行思考。
應用上依然有其限制
那是否有可能一口氣同時將其餘三臺貼圖用伺服器通通「吃」下來?巴哈姆特表示,依據他們的經驗,因圖片檔案體積都不小之故,貼圖用伺服器的運作特性,反而比較像檔案伺服器,如果都用Sun Fire T2000去擋,整體效率可能就會下滑。
隱而不現的是,延續Opteron伺服器「Galaxy」的「優良傳統」,Sun Fire T2000的SAS RAID控制器無論效能和支援功能都不盡理想,連RAID 5都沒有,而且最多只能安裝4臺硬碟,這些都是實際應用上的限制。
Solaris功能強大,但相當複雜
為了模擬既有的環境,我們利用Solaris 10的Solaris Container功能,切割三塊作業系統分割區(Solaris Zone),各自分配4至10個邏輯處理器與1埠GbE,執行Apache、PHP與Zend PHP加速器,作為獨立的網站伺服器,底層Global Zone保留4個邏輯處理器,彼此互不干擾。Sun Fire T2000的第4埠GbE則透過交換器,專門用來連接後端的資料庫伺服器。
在替換過程中,由於巴哈姆特所有的伺服器均採用FreeBSD,連Linux都沒有,對Solaris更是極為陌生,所以花了不少時間重新學習系統指令與運作架構。幸好為了方便客戶從FreeBSD或Linux轉移至Solaris,Sun有提供相關教學文件,也有兩位Sun技術顧問協助,所以轉移的過程並無大礙。
就算如此,畢竟Solaris是不熟悉的作業系統,無論是系統設定檔、參數命名、記憶體使用行為,甚至連「實際上功能一樣的軟體」名稱也都不同。歷經兩個月的「朝夕相處」,還是不甚瞭解這套號稱是地球上最先進的作業系統,更罔論Solaris 10琳瑯滿目的管理功能,如複雜的DTrace。
也許Sun在宣傳Niagara前,先該讓昔日看似高不可攀的Solaris「飛入平常百姓家」,而且除了既有的免費下載服務和CDDL授權之外,更要有進一步的推廣運動,讓長期用慣FreeBSD和Linux的企業,願意改用Solaris。文⊙劉人豪
|
測試環境 |
| 我們在Sun教育訓練中心架設JMeter壓力測試環境,透過模擬巴哈姆特使用者行為,「壓榨」Niagara的效能,使用設備包含Sun Fire T2000、Sun Fire V60、Cisco Catalyst 3750交換器、Foundry FastIron 424X交換器、用來執行「轟炸任務」的10臺Sun Blade 1500工作站,以及做為JMeter主控臺的Pentium XE 955個人電腦。
為了達成最高的效能,我們刻意隔離資料庫伺服器與工作站群的網路。此外,我們也透過IPMP軟體,分散Sun Fire T2000上GbE埠的流量。 模擬的動作假設使用者先進入巴哈首頁,點選討論區登入首頁,選擇討論區,再閱讀討論區文章,在30秒內做完七個連續動作。所有的Sun Blade 1500工作站都送出100至300這樣的存取需求,我們再經由JMeter主控臺所計算出的反應時間與輸出量,同時直接監測Sun Fire T2000的系統效能,確保系統真的有被「操」到。 我們在Sun教育訓練中心架設JMeter壓力測試環境,透過模擬巴哈姆特使用者行為,「壓榨」Niagara的效能,使用設備包含Sun Fire T2000、Sun Fire V60、Cisco Catalyst 3750交換器、Foundry FastIron 424X交換器、用來執行「轟炸任務」的10臺Sun Blade 1500工作站,以及做為JMeter主控臺的Pentium XE 955個人電腦。 |
極限效能的測試:Apache JMeter壓力測試
可承受高輸出量的網站架構,並非僅仰賴高效能的網站伺服器,而需要整體的規劃。我們在巴哈姆特與Sun技術顧問的協助下,在Sun教育訓練中心建置一個壓力測試環境,除了找出Sun Fire T2000的極限效能外,也從測試的過程中,瞭解導入這樣高效能網站伺服器的過程中,可能會遭遇的問題。
在測試過程中,我們可以將Niagara的處理器利用率逼近到接近90%的水準,一秒鐘內可同時處理近200個PHP動態網頁,或將近400個靜態網頁的存取要求。
為何需要壓力測試
一言以蔽之,我們原先以為巴哈姆特的巨大流量就足以逼出Sun Fire T2000的極限效能,就算沒有,也可以發揮到某種程度,但我們錯了,最後依舊難逃進行勞民傷財壓力測試的下場。
模擬使用者行為的壓力測試
JMeter是由Apache軟體基金會針對網站伺服器的整體效能,所研發的開放原始碼效能測試工具,由Java所撰寫,可在任何平臺上執行。因JMeter可允許使用者自行設計測試腳本,模擬不同的應用環境與使用行為,所以經常被廠商與企業作為網站架構的評估工具。
我們架設一個由10臺Sun Blade 1500工作站所組成的壓力測試環境,將巴哈姆特的首頁與討論區搬上一臺Sun Fire T2000,討論區資料庫放在一臺Sun Fire V60上跑。為了確保JMeter的主控臺不會變成效能瓶頸,我們採用一臺Pentium XE 955處理器、975X晶片組、安裝4GB DDR2-667記憶體與Windows XP x64的頂級個人電腦。
Sun Fire T2000上的Solaris 10並未切割Solaris Zone,所有32個邏輯處理器都集中起來,以達成最高的運算效能利用率。網路拓樸延續巴哈姆特既有架構,3埠GbE採用IPMP(IP Multi-Passing)流量分散軟體,透過一臺Foundry FastIron 424X交換器連接10臺Sun工作站與JMeter主控臺,僅剩的1埠GbE則經由一臺Cisco Catalyst 3750交換器連接執行資料庫的Sun Fire V60。
JMeter測試腳本模擬巴哈姆特的使用者在30秒內,從連上首頁、進入討論區首頁,再連續閱讀數篇文章的七個動作,由JMeter主控臺遠端控制10臺Sun Blade 1500工作站產生大量的連接「轟炸」Sun Fire T2000。
Java效能不佳
採用JMeter所面對的第一個挑戰,就是Java過去一向惡名昭彰的執行效能。
首先,我們原本先以Sun教育訓練中心講師座位的電腦,作為JMeter的主控臺,事後證明,該電腦不但難以負擔控制工作,甚至連「即時繪出」JMeter執行狀態的曲線圖都有問題。
其次,不足的記憶體容量也是障礙,當工作站群所發出的執行緒數量持續增加,JMeter主控臺電腦就容易發生記憶體不足導致JMeter當掉的狀況。為了一勞永逸起見,我們就四處搜刮,臨時拼裝一臺採用Pentium XE 955與4GB DDR2-667記憶體的個人電腦,也安裝x64版本的Windows XP確保充裕的記憶體可用容量,該問題就迎刃而解。
不過,作為「轟炸機」的JMeter用戶端電腦,如果作業系統的記憶體管理不佳,無法聰明的釋放多餘的記憶體空間,Java的效能就會慘不忍睹,因為系統一直都浪費時間在記憶體的配置動作上。我們後來比較過Windows與Solaris的表現,除了Solaris的記憶體管理能力先天就遠勝Windows外,畢竟Java和Solaris都是Sun的東西,Java Runtime Environment在Solaris上,就是比Windows來得好。
網路交換器成為效能測試的大瓶頸
讓人驚訝卻不意外的是,在這次壓力測試的初步建置階段,我們僅採用一臺老舊的3Com SuperStack 3300交換器(24埠100Mbps)連結所有的電腦,後來先後更換Cisco和Foundry的GbE交換器,Sun Fire T2000的輸出量馬上就突飛猛進。
交換器的效能對壓力測試造成的影響,遠遠超過我們先前的評估。我們原本「天真」的以為,只要採用僅十多萬的Cisco Catalyst 3750此類的中低階GbE交換器,請和信超媒體資深網路工程師李欣叡調校,就可扛住壓力測試,萬無一失,結果換裝3750交換器後,竟然發生測試的反應時間反而暴增十倍的慘劇,被逼的去緊急調用一臺Foundry FastIron 424X,再進一步切割網路,才勉強過關。
經由這次的測試,我們才真正了解到網路效能的重要性。但據了解,部份企業讓網站伺服器採用在光華商場隨處可得、甚至完全缺乏網管功能的低階交換器,並非不重視網路效能,而是為了安全的考量,因為一臺「兩光」的便宜交換器,反而更無須擔心被攻擊的問題,除了「物理攻擊」外,要攻擊還真不知道從何開始。以巴哈姆特來說,連接網站討論區與4臺資料庫伺服器之間的交換器,也僅是PCI的便宜100M產品。這種特殊考量,是我們始料未及的。
所有的網路連線是否統一為GbE,對整體效能也有舉足輕重的影響,因為如果一臺GbE交換器上的連線無法統一,就無法啟動乙太網路的Jumbo Frame,降低傳輸效率。我們嘗試用15臺採用AMD Sempron 2600+和100Mbps網路卡的個人電腦取代10臺Sun Blade 1500工作站,輸出量馬上暴跌。
網站伺服器的記憶體多多益善
此外,記憶體容量對網站伺服器非常重要,因為只有記憶體夠大,才能同時維持住夠多的存取需求,提高處理器的實際利用率,反之亦同。Sun Fire T2000最多可安裝32GB記憶體,而且擁有超大的頻寬,並不是沒有理由的。無論採用何種處理器,企業在架設網站伺服器前,應更重視記憶體容量。文⊙劉人豪
|
測試環境 |
| 我們在Sun教育訓練中心架設JMeter壓力測試環境,透過模擬巴哈姆特使用者行為,「壓榨」Niagara的效能,使用設備包含Sun Fire T2000、Sun Fire V60、Cisco Catalyst 3750交換器、Foundry FastIron 424X交換器、用來執行「轟炸任務」的10臺Sun Blade 1500工作站,以及做為JMeter主控臺的Pentium XE 955個人電腦。
為了達成最高的效能,我們刻意隔離資料庫伺服器與工作站群的網路。此外,我們也透過IPMP軟體,分散Sun Fire T2000上GbE埠的流量。 模擬的動作假設使用者先進入巴哈首頁,點選討論區登入首頁,選擇討論區,再閱讀討論區文章,在30秒內做完七個連續動作。所有的Sun Blade 1500工作站都送出100至300這樣的存取需求,我們再經由JMeter主控臺所計算出的反應時間與輸出量,同時直接監測Sun Fire T2000的系統效能,確保系統真的有被「操」到。 我們在Sun教育訓練中心架設JMeter壓力測試環境,透過模擬巴哈姆特使用者行為,「壓榨」Niagara的效能,使用設備包含Sun Fire T2000、Sun Fire V60、Cisco Catalyst 3750交換器、Foundry FastIron 424X交換器、用來執行「轟炸任務」的10臺Sun Blade 1500工作站,以及做為JMeter主控臺的Pentium XE 955個人電腦。 |
Solaris才是Niagara最堅強的後盾
身為Sun SPARC處理器技術發展的最高負責人,Sun可延展系統事業群執行副總裁顏維倫博士的意見,最足以充分代表Sun對Niagara的立場與看法。
"Niagara並非全新的技術,卻是心態上的突破"
問:我們觀察Niagara很久了,總覺得類似Niagara的多核心設計早在網路處理器已行之有年,硬體技術也不突出,請問Sun是否認同這樣的看法?
顏維倫(以下簡稱答):其實Niagara的突破並非硬體,技術上也沒有明顯門檻,問題的關鍵在於如改變「心態(Mind Set)」與既有的成見。事實上,當初我們內部對Niagara充滿了反對意見,如「浮點運算效能太差」、「單線程(單執行緒)表現不好」、「這種設計風險太大」、「需要重新建立效能驗證標準」等等。此外,更擔心這種特殊產品將無法吸引客戶支持。換言之,如果觀念不改,Niagara絕對不可能誕生。
問:所以併購Afara Websystem的目的是?
答:坦白講,Afara Websystem其實並沒有什麼重要的專利與技術,之所以併購這家公司,主要目的是為了讓Sun整間公司下定決心,完全拋棄過去所建立的技術本位與價值觀,毅然走向Throughput Computing。
"Solaris是Niagara誕生的基礎"
問:多核心處理器需要最佳化的作業系統與應用程式,那請問Sun是怎麼看待這個問題?
答:其實就是因為擁有Solaris,我們才會推出Niagara。Solaris在大型多處理器系統的表現有目共睹,多線程(多執行緒)能力也是現今操作系統(作業系統)中最強者,而且Sun在相關軟體領域已經有長期累積的基礎,所以這對Sun並不會是問題。
"其他廠商不見得會陸續跟進"
問:既然Niagara在技術上沒有重大門檻,也沒有阻擋競爭對手的專利,那麼像IBM和英特爾此類具有雄厚處理器研發能量的公司,是否將陸續跟進?我們也都知道IBM已經有Cell處理器這樣的設計了。
答:我認為像IBM或HP這種從大型主機起家、以「data centric」為思考核心的公司,就算具備了最完整的技術,也不會願意推出類似Niagara的產品。最近從IBM Power6就可以看出,IBM並未放棄追求高時脈的思維,但降低處理器耗電量已經是不可避免的趨勢了。更何況,就算IBM想做,也缺乏像Solaris這樣先進的作業系統,可充分發揮多核心處理器的效益。
相較於IBM,現在英特爾反而轉到比較正確的方向,也就是低功耗的多核心架構,不過英特爾畢竟不是伺服器廠商,沒有自己的作業系統和解決方案。
問:去年四月,你在北京的大中華年會首度透露Sun將推出採用Niagara與Opteron的ATCA伺服器刀鋒,而ATCA基本上都是針對網路電信架構而發展。所以Sun眼中的未來運算架構都是以網路為中心,而不是伺服器,例如在裝滿ATCA的刀鋒伺服器中,僅少數幾片伺服器,即可滿足運算需求?
答:是的,Sun本來就一直以網路為中心,當公司成立、推出產品時,已經是網路開始萌芽普及之際,所有的伺服器和工作站,沒有一臺是沒有網路埠的。這也是Sun和其他伺服器廠商,最大的不同點。文⊙劉人豪效能表現出色,但導入門檻較高
本次Sun Fire T2000長達兩個月的「勞民傷財」實機部署與壓力測試,在巴哈姆特的協助下終於順利完成,我們訪問巴哈姆特技術部經理葉昌福,請他以實際用戶的經驗與觀點,分析Niagara的優缺點。
"頭號門檻:學習Solaris"
問:過去巴哈姆特所有的伺服器都是FreeBSD,這次因測試Niagara「被迫」採用Solaris,請問有造成使用上的困難嗎?
葉昌福(以下簡稱答):其實我在這次實機測試之前,並沒有碰過Solaris,有些東西的安裝方式,跟FreeBSD不一樣,其系統設定的概念,也有所出入,所以在一開始的時候,花了不少時間研究設定與瞭解系統架構。
問:如果巴哈姆特真的引進Sun Fire T2000,也採用Solaris了,那你們是否會進一步考慮在其他的伺服器上採用Solaris?
答:暫時不會考慮全面更換至Solaris,但之後如果陸續有Sun的系統加入我們的伺服器陣容,這群新的Sun伺服器就應該會使用Solaris。N1 System Manager是一個相當不錯、而且免費的伺服器組群管理軟體,採用Solaris的伺服器越多,效益就越好。
"Niagara系統效能的確出色,但不見得划算"
問:巴哈姆特用一臺Sun Fire T2000取代現有的網站討論區伺服器群長達一週之久,那你們的使用心得是?
答:換上一臺Sun Fire T2000,有些許感覺變快,不曉得是不是心理作用,唯一可以確定的是,絕對沒有變慢,並且從系統狀態可以看出,Sun Fire T2000雖然平均一天會承受600到800GB的流量,但還有多承受50%額外流量的空間。換句話說,我們估算一臺Sun Fire T2000的效能,大概等同七到八臺現有的網站伺服器,幾乎是現在的兩倍。
不過,我們不可能只引進一臺Sun Fire T2000來取代現有的伺服器群,因為雞蛋不能放在同一個籃子裡,如果預算允許,一家靠網站吃飯的公司應該一次就引進兩臺作交互備援。
問:導入Sun Fire T2000真的會比較划算嗎?
答:這問題必須看你從哪個角度切入,如果你只單純計算機器的效能/價格比,Sun Fire T2000並不會比單獨採購多臺1U或2U的x86伺服器來得便宜。在購買這種機器前,應先整體考量到MIS的管理成本,機房的機櫃費用與佔用的機櫃空間。當納入這些因素後,該怎麼決定就有賴自己的估算了,畢竟各個網站的環境並不完全相同。
"系統變好了,人也要更聰明"
問:導入Niagara系統後,是否會帶來額外的學習挑戰?
答:一定是會有的,從FreeBSD轉移至Solaris上,必須去瞭解Solaris獨特的運作方式,雖然Unix都系出同源,但除了簡單的主要指令外,參數統一與設定檔有如鳳毛麟角,像這次測試過程中,常常會需要一邊查詢指令參數,一邊測試該指令。
此外,當你引進Sun Fire T2000這樣「暴力」的伺服器後,交換器與網路線材都需要換上更好的產品,並且重建對整個網站架構的認知,尤其是經常被網站伺服器管理者所忽略的網路效能。
問:最後,對推出如此另類產品的Sun,你有哪些建議與想法?
答:基本上,我個人認為Niagara這樣的設計方向,相當適合純粹需要大量網站伺服器的公司,只是產品售價略嫌過高,讓人望之卻步。
Solaris過肥導致安裝時間過長,就算最精簡的安裝項目也相當費時,不像FreeBSD只需一片光碟,十分鐘即可安裝完畢。更重要的是,對於已經相當熟練且經驗豐富的伺服器管理者,都會按照自己的需求逐步手動安裝需要的軟體,天花亂墜、塞滿一堆用不到的套件反而是累贅,或許Sun可以認真考慮推出精簡版的Solaris,降低進入的門檻。文⊙劉人豪Niagara應用上的限制與瓶頸
經過長期的部署與實測,我們已經證實Niagara的效能,的確相當出色,足以取代數臺既有的x86網站伺服器。Solaris 10的功能與管理性,也易於管理維護工作,和Niagara堪稱天作之合,像Solaris 10就具備動態調整Niagara的32個邏輯處理器,分配至不同Solaris Container的彈性。不過,正如同硬幣都有正反兩面,在光鮮亮麗的測試數據背後,依舊暗藏諸多應用上的限制與瓶頸。
系統售價依舊偏高,功能/價格比不佳
本次我們測試的Sun Fire T2000,是採用最高階Niagara(時脈1.2GHz、8核心)、裝滿32GB DDR2-533記憶體的頂級版本,僅安裝2臺2.5吋萬轉SAS硬碟,售價就將近100萬元。巴哈姆特就表示,一臺Sun Fire T2000的價格,就幾乎「1.5倍於巴哈姆特全部x86伺服器群的總價」,不將長期省下的機櫃空間租金計算進去,用Niagara系統取代全部的網站伺服器,一點也不划算。另外,Niagara系統的表現,極度倚賴高容量記憶體,購置記憶體的成本亦所費不貲。
隱而不現的,Niagara像瀑布一樣的高輸出量,對既有的網路架構不啻是一大挑戰,尤其是首當其衝的網路交換器。我們本次進行的壓力測試,最大的效能瓶頸並非用戶端系統的數量與效能,而是交換器根本就無力負荷,先後更換Cisco Catalyst 3750與更高階的Foundry FastIron Edge X424交換器,才勉強迎刃而解。換言之,「車子跑得快,道路也要寬」,這是導入Niagara系統前,可能產生的「額外成本」。
更重要的是,企業不可能天真的就把所有的雞蛋放在同一個籃子內,巴哈姆特就表示,就算真的引進Sun Fire T2000,他們也得另外購買一臺較低階的Niagara系統(如Sun Fire T1000)供備援之用,否則只要一臺伺服器掛掉,整個網站就會全軍覆沒。
汎用性不佳,降低部署彈性
天底下沒有白吃的午餐,Niagara是針對網站伺服器而量身訂做的產品,其特殊架構限制了汎用性,像HPC之類需要高浮點運算效能的應用,8核心僅共用一個簡單浮點運算器的Niagara就力有未逮,容量太小的快取與缺乏支援多處理器環境,也使其不適用資料庫與檔案伺服器。Sun在行銷宣傳中,刻意比較價格相當的Sun Fire T2000與IBM P5-550系統,問題是,根本不會有哪家企業買Power5就只為了跑網站伺服器,更罔論後者的應用彈性遠邁前者。今天企業導入Niagara系統,除了部署彈性頗具限制,當汰換之後,也很難為其尋覓第二春。
正如同服務中心必須在「櫃臺多,服務反應時間長」與「櫃臺少,服務反應時間短」之間取得平衡,Niagara因核心過於簡單導致單執行緒效能不佳,則是另一個潛在的限制。對網站伺服器來說,伺服器的反應時間往往遠不及網路的延遲,也許不是大問題,但對反應時間較敏感的應用,如交易伺服器,就不見得是這麼一回事。
市場上缺乏其他同質性產品
目前伺服器市場中,僅有Sun推出如此「極端」的產品,與Sun策略聯盟的Fujitsu也僅根據合作協議代售Niagara系統。雖然Solaris已有x86版本,就算不打算死守SPARC平臺,「理論上」可將既有的Niagara環境轉移至未來的x86或其他SPARC伺服器上,但實際上卻沒那麼簡單,因為可能會為了走回頭路再度大幅翻修網站整體架構,勞民傷財。
也許會有人問,Sun不是近期才推動「Open SPARC」,開放Niagara的設計,以「建立8核心/32執行緒的社群」?根據歷史的教訓,我們有充分的理由可以相信,就算真有其他廠商生產Niagara相容處理器,基於信心與服務,依舊不會有企業敢採用Sun與Fujitsu以外的SPARC伺服器。
企業IT人員對Solaris的距離感
最後,在Linux對Niagara的支援性未成熟之前,只有Solaris 10才能徹底發揮Niagara的潛能,如果企業原本就沒有採用Solaris,而是使用Linux、FreeBSD或其他商用Unix,轉移到Solaris就需要一段適應的時間,熟悉其功能、命令及Solaris 10琳瑯滿目的新技術。此外,Niagara硬體架構特殊,也需要大費周章進行效能調校,像小型的快取和TLB與較大的分頁檔等,並不是作業系統裝了後就沒事了。
尤其今天不少網管與MIS,在學生時代都慘遭Solaris那五窮六絕時期的「荼毒」,而產生心理障礙,連筆者到今天都餘悸猶存。就某種意義而言,這也許才是推廣Niagara的路上,最大顆的石頭。文⊙劉人豪從Niagara檢視伺服器處理器的技術趨勢
對很多企業來說,雙核心可能還只是陌生的名詞,看到市場上突然就出現「8核心」的產品,也許會感到非常震驚。但不可否認的,無論成敗與否,多核心處理器已經是必然的技術趨勢,值得企業關注。
降低功耗已經不得不為
當省電成為伺服器廠商和企業關注的焦點,現有的半導體製程技術又難以克服高時脈所造成的高耗能與高熱量,走向較低時脈的多核心架構,是不得不走的方向。近期Sun的Niagara與英特爾的全新x86微架構「Core」,就是最好的代表。
在這個趨勢中,唯一的例外,是IBM在今年IEEE ISSCC 2006正式發表的Power6處理器,擁有介於4.4GHz至5.2GHz的驚人時脈,後繼的Power7處理器也將延續相同的設計路線。
藍色巨人膽敢「甘冒鄉民眾怒」,主因不外乎想透過二進位執行檔轉換技術與處理器內建的輔助硬體,將超過四十年歷史的S/360指令集大型主機處理器,用Power取而代之(計畫代號「eCLipz」),才需要超高時脈,而且為了降低耗電量,維持與現有Power5相同的水準,處理器核心的複雜度簡化至中低階PowerPC的等級,甚至Power6單核心精簡版本的耗電量還要壓低到「可裝在IBM刀鋒伺服器」。所以說,降低耗電量依舊是非常重要的議題。
指令集架構將決定多核心處理器的發展潛力
在邁向多核心架構的路上,無可避免的,要縮小單一核心的晶粒面積,在放棄追求高時脈的超深指令管線之外,必須進一步精簡處理器的核心複雜度。在這時候,處理器所採用的指令集架構就扮演著舉足輕重的角色,因為指令集架構越易於實作與驗證,越不需要複雜的核心即可達到合理的效能,就越適合多核心處理器,以及導入更完善的可靠性機制與省電功能,縮短產品研發時間。
這也就是為何Sun Niagara支援4執行緒的單一處理器核心可以簡單到僅有4萬個邏輯閘,英特爾會大費周章發展IA-64指令集與Itanium處理器,以及IBM想用Power取代S/360的主因。
阻擋x86向上發展的先天限制
同理可證,先天不良、後天失調,十多年來一直都是無數計算機組織結構教科書中「北港香爐級」指令集錯誤設計示範,卻又長期支配個人電腦與低階伺服器市場的x86指令集,在伺服器處理器逐步走向多執行緒的省電架構,與桌上型處理器開始分道揚鑣之後,在失去龐大個人電腦市場的保護傘,x86伺服器處理器是否有足夠的市場規模,去分擔開發x86核心的高昂成本與漫長時程(以英特爾NetBurst微架構為例,就耗資十億美元與四年的開發時間,P6與Core微架構也相差無幾),就是一個問號。在今天,x86市場看似這麼大,廠商多如過江之鯽,也僅剩英特爾與AMD兩家廠商碩果僅存,指令集的限制,由此可見一斑。
更重要的是,在沒有導入極為複雜的實作加速機制之前,x86處理器的效能表現都慘不忍睹。為何x86在嵌入式處理器市場一直沒有地位,都是RISC的天下,連英特爾的嵌入式與網路處理器產品線都是ARM指令集的XScale,而不是x86,其因在此。
x86在低階伺服器世界的霸權,是否將會消失?
從1995年的Pentium Pro開始替x86敲開進入伺服器市場的大門,僅用十年的時間,藉由龐大個人電腦市場攤平研發成本,就主宰了低階伺服器與工作站市場。但是,從Niagara開始,伺服器的技術發展趨勢已經出現了逆轉的契機,指令集架構的良窳成為多核心處理器的關鍵,伺服器作業系統與應用程式逐步走向跨平臺化的潮流,以及虛擬化與高速二進位執行檔轉換技術的突破,更將進一步讓伺服器應用掙脫指令集相容性的枷鎖,x86不再是不可取代。
當然,我們有充分的理由相信,x86仍會繼續支配個人電腦市場,但在可見的未來,很可能x86將不再是低階伺服器市場唯一的選項。如果這一天真的到來,對企業來說,絕對是有利無害的。文⊙劉人豪
熱門新聞
2026-01-12
2026-01-12
2026-01-12
2026-01-12
2026-01-12


