之后,Benchmark的內涵和范疇在不斷演變,時至今日,已經形成了非常豐富、全面的企業(yè)計算平臺基準測試體系。

天地之間,一切皆可度量。

隨著Benchmark在用戶端認知度不斷提升,無論是成百上千臺服務器喧鬧運轉的大中型數據中心,還是只有幾臺服務器安靜閃動的小機房,量化評價服務器系統的理性光芒在閃耀。
服務器的采購,正在進入理性時代。

用戶總希望有一種簡單、高效的度量標準,來量化評價服務器系統,以便作為選型的依據。但實際上,服務器的系統性能很難用一兩種指標來衡量。

最理想的評估方式,莫過于建立一個接近真實業(yè)務應用的操作環(huán)境,進行各種壓力測試,測算出不同應用環(huán)境下服務器系統的響應時間、吞吐量等等,從而對服務器性能做出一個最接近真實狀況的評估。

然而,對大多數用戶來說,建立準確的壓力測試環(huán)境是具有一定挑戰(zhàn)性的,所以很多時候,在采購服務器的過程中,就需要一個工業(yè)標準作為參照物。
那么,有這樣的參照物嗎?

是的,業(yè)界有一個曝光率極高的詞–Benchmark,就是服務器的工業(yè)標準基準測試,其中包括諸如TPC、SPEC、SAP SD、Linpack和HPCC等在內的眾多服務器性能基準測試,可以從處理器性能、服務器系統性能、商業(yè)應用性能直到高性能計算機的性能,給出一個量化的評價指標供用戶選擇。那么,在如此多的標準中,用戶該如何選擇最適合自身應用環(huán)境的評價體系呢?
實際上,這完全取決于用戶對于其應用環(huán)境的了解。可以說,了解應用性質非常重要,不同的應用,即使屬于同一大類,Benhmark的適用性也是因為應用類型的不同而不同的。例如都是數據庫系統,也可能因為運算類型的不同而對服務器有不同的要求,所以基準測試的適用性也不同。

第一回:把脈兩大基準體系

心中有數,方可游刃有余。

在服務器基準測試體系中,TPC和SPEC是最常用、最普及的兩大基準,深入了解其中的涵義和奧秘,對于更好地在服務器采購中運用Benchmark工具相當重要。

第一節(jié):了解TPC系統

PC體系是影響最大的評測基準之一,但有多少用戶真正了解其中的含義呢?

TPC(Transaction processing Performance Council,事務處理性能委員會)是由數十家會員公司創(chuàng)建的非盈利組織,總部設在美國。TPC的成員主要是計算機軟硬件廠家,而非計算機用戶,其功能是制定商務應用基準測試程序的標準規(guī)范、性能和價格度量,并管理測試結果的發(fā)布。

作為一家非盈利性機構,事務處理性能委員會(TPC)負責定義諸如TPC-C、TPC-H和TPC-W基準測試之類的事務處理與數據庫性能基準測試,并依據這些基準測試項目發(fā)布客觀性能數據。

TPC不給出基準測試程序的代碼,而只給出基準測試程序的標準規(guī)范。任何廠家或其他測試者都可以根據規(guī)范,最優(yōu)地構造出自己的測試系統(測試平臺和測試程序)。為保證測試結果的完整性,被測試者(通常是廠家)必須提交給TPC一套完整的報告(Full Disclosure Report),包括被測系統的詳細配置、分類價格和包含5年維護費用在內的總價格。該報告必須由TPC授權的審核員核實(TPC本身并不做審計)。TPC在全球只有不到10名審核員,全部在美國。

TPC推出過11套基準測試程序,分別是正在使用的TPC-App、TPC-H、TPC-C、TPC-W,過時的TPC-A、TPC-B、TPC-D和TPC-R,以及因為不被業(yè)界接受而放棄的TPC-S(Server專門基準測試程序)、TPC-E(大型企業(yè)信息服務基準測試程序)和TPC-Client/Server。而目前最為"流行"的TPC-C是在線事務處理(OLTP)的基準測試程序,于1992年7月完成,后被業(yè)界逐漸接受。

第二節(jié):SPEC關注Java和Web

除了TPC家族,SPEC家族也是廣為人知的一大體系。

與TPC體系注重在線處理能力和數據庫查詢能力不同,SPEC服務器應用性能測試是一個全面衡量Web應用中java企業(yè)應用服務器性能的基準測試。

SPEC(the Standard Performance Evaluation Corporation標準性能評估機構)是一個全球性的、權威的第三方應用性能基準測試組織,它旨在確立、修改以及認定一系列服務器應用性能評估的標準。

SPEC服務器應用性能基準測試是一個全面衡量Web應用中java企業(yè)應用服務器性能的基準測試。在這個基準測試中,系統模擬一個現代化企業(yè)的電子化業(yè)務工作,如客戶定購查詢、產品生產制造管理、供應商和服務器提供商管理等,給系統以巨大的負載,以全面測試運行典型java業(yè)務應用的服務器性能水平。

由于它體現了軟、硬件平臺的性能和成本指標,被金融、電信、證券等關鍵行業(yè)用戶作為選擇IT系統一項權威的選型基準測試指標。

目前主要包括針對CPU性能的SPEC CPU2000(已有CPU2006,但數據不是很多)、針對Web服務器的SPECweb2005、針對高性能計算的SPEC HPC2002與SPEC MPI2006、針對Java應用的jAppServer2004與JBB2005以及其他針對圖形系統、網絡和郵件服務器的基準測試指標。

其中CPU2000和web2005兩類是被引用最廣泛的基準測試指標。

第三節(jié):三種實踐模式

成熟的企業(yè),從不盲目相信"國際通用標準",他們總是付出人力、物力、財力,來建立自己的應用測試系統,從而決定服務器選型。

"國際通用標準"的度量可以作為參考值,而不應作為必要條件。尤其是一定要弄清這些流行的度量有什么含義,是在什么樣的系統環(huán)境中測得的,以及基準程序是否符合企業(yè)真實的業(yè)務流程和運作模式。

下面就是三種不同的檢測模式。

在真實環(huán)境中運行實際應用:這是最理想的方式。要求制造商或系統集成商配合將系統(含平臺、軟件和操作流程)在一個實際用戶點真正試運行一段時間。這樣,用戶不僅能看到實際性能,也能觀察到系統是否穩(wěn)定可靠、使用是否方便、服務是否周到、配置是否足夠、全部價格是否合理。

使用用戶定義的基準程序:如果第一種方式不可行,用戶可以定義一組含有自己實際應用環(huán)境特征的應用基準測試程序。業(yè)內有兩個典型的例子:其一,近年來由于3層應用模型的風靡,SAP SD基準測試獲得了眾多廠商和用戶的認可,于是在很多地方都能看見對SAP基準測試數據的引用;其二,國家稅務總局曾經開發(fā)自己的基準測試程序,以幫助稅務系統進行服務器選型。這種方式在中國尤其重要,因為中國的信息系統有其特殊性。

使用通用基準測試程序:如果前兩種均難實行,那么使用如TPC-C之類的通用基準測試程序未嘗不可。但用戶應當尤其注意–實際應用是否與基準測試程序相符?絕大多數基準測試程序都是在美國制訂的,而中國的企事業(yè)單位與美國的運作方式常常不一樣,在使用TPC-C時,用戶應該清楚地知道:自己的應用是否符合批發(fā)商模式?事務請求是否與測試模式近似?對響應時間的要求是否那么高?如果都不是,則tpmC值的參考價值就不太大了。那么不妨看看其他的更合適的測試指標,例如SPECweb2005等。

第二回:四大應用中的Benchmark

知己知彼,才能為我所用。

應用種類不同,所適用的Benchmark基準測試也不同。只有做到對應用類型和Benchmark種類心中有數,才能在名目繁多的基準測試中找到能夠真正為我所用的項目,從而有效地指導服務器平臺采購。這里以高性能運算、在線事務處理能力、Web應用和Java應用四大類企業(yè)典型應用為主,介紹了相應"對號入座"的基準測試。

第一節(jié):高性能運算有多"高"?

高性能計算機是一個復雜的系統,很難用幾個參數或指標對其進行性能評價。

為此,業(yè)界開發(fā)了多種標準測試程序試圖對高性能計算機進行評定,但這些測試指標通常都是對計算機某一方面進行測試,而不能全面地說明系統的整體性能。

目前,比較常用的幾個基準測試中,Linpack側重于系統浮點峰值運算能力的測試;SPEC CPU2000測試的是單CPU性能及作業(yè)吞吐能力;SPEC OMP2001的結果說明了共享內存的計算機使用共享內存并行模式(OpenMP)的并行效率和加速比;STREAM試圖對系統的數據訪問能力(帶寬和延遲)進行定量地評價等。

高性能計算用戶的應用千差萬別,對計算機系統的要求也是各種各樣。所以評價高性能計算機性能的最好方法是用用戶自己的應用程序去進行實際的測試,或找到相似應用的商業(yè)軟件的基準測試結果。這樣的評價會更有針對性,也比較客觀。比如在制造行業(yè)中,常常需要對汽車在高速行駛情況下的氣動性能、飛機發(fā)動機內氣體流動等情況進行分析,相應的商業(yè)流體力學分析軟件有Fluent、Satr-CD、Power-Flow等。而在石油行業(yè)中,比較知名的軟件有Platform等。

Linpack主宰TOP500

每年,當全球超級計算機TOP500發(fā)布的時候,都會成為業(yè)界的關注焦點。名單上起起落落、沉沉浮浮的背后,牽扯著從處理器廠商到系統廠商、軟件廠商等等的一長串心跳,對他們來說,名單上的名次就是實力、技術、研發(fā)、前瞻性等等多個因素的考量。

那么,TOP500的名次是如何排定的呢?一項名為Linpack的服務器基準測試就是最關鍵的依據。

作為一種性能計量標準,Linpack基準可以提供詳細的描述和多種硬件平臺上的性能結果。

Linpack Benchmark中使用的基準測試方法主要用于解算線性方程的密集系統。在TOP500中,就使用了這種版本的基準測試,使用戶能夠衡量系統的規(guī)模并對軟件進行優(yōu)化,使其能夠在特定的硬件平臺上發(fā)揮出最佳的性能。雖然這種性能并不能反映出特定系統的總體性能,但它可以反映出專用系統解算線性方程密集系統的性能。因為這種問題很常見,而且取得的性能非常高,因此良好的性能參數對于峰值性能具有很好的參考意義。

SPECfp2006考察浮點運算

1、CPU基準測試SPEC CPU2006

對于一個高性能計算機來說,用戶最關注的就是它的整體運算能力,Linpack能夠幫助用戶清晰地掌握這個系統的整體能力,而對于單個CPU性能及作業(yè)吞吐能力的測試,則靠另外一個基準測試SPEC CPU2006來完成?;蛘哒f,對于計算密集類型的工作負荷來說,SPEC CPU2006是一個非常重要的基準測試。

SPEC CPU2006能分別測量計算機系統的整數和浮點性能。其中,SPECint_base2006衡量在單處理器系統上的整數"速度"性能,而SPECfp_base2006則衡量在單處理器系統上的浮點"速度"性能。"整數"部分有12個程序,使用C或C++語言,它們不使用CPU的浮點單元;而"浮點數"分有 17 個程序(原來的CCPECfp2000至右14個程序),使用FORTRAN 77/90和C語言,這些程序的主要運算是浮點數的。

SPECint2006和SPECfp2006的結果以執(zhí)行時間為準。每個程序的執(zhí)行時間和一個參考平臺(Sun Ultra5/10 300MHz)相比,計算出其倍數。如果執(zhí)行時間和參考平臺相同,結果就是100。如果只花了一半時間完成,結果就是200。"整數"的12個程序的結果,取其平均值,得到的就是SPECint2006的測試結果。"浮點數"的17個程序也是一樣。
由于SPEC CPU2006的測試程序都是源代碼形式(以保證跨平臺測試),所以編譯器效率就顯得十分重要。SPEC CPU2006規(guī)定,測試結果有"Base"和"Peak"兩種結果。"Base"測試中,對于編譯時的最佳優(yōu)化參數有所規(guī)定(所有的程序都需使用同樣的參數,且參數數目不能超過四個),而"Peak"測試則比較寬松。

(1) (2) (3)

分享到

多易

相關推薦