之后,Benchmark的內(nèi)涵和范疇在不斷演變,時至今日,已經(jīng)形成了非常豐富、全面的企業(yè)計算平臺基準(zhǔn)測試體系。
天地之間,一切皆可度量。
隨著Benchmark在用戶端認(rèn)知度不斷提升,無論是成百上千臺服務(wù)器喧鬧運(yùn)轉(zhuǎn)的大中型數(shù)據(jù)中心,還是只有幾臺服務(wù)器安靜閃動的小機(jī)房,量化評價服務(wù)器系統(tǒng)的理性光芒在閃耀。
服務(wù)器的采購,正在進(jìn)入理性時代。
用戶總希望有一種簡單、高效的度量標(biāo)準(zhǔn),來量化評價服務(wù)器系統(tǒng),以便作為選型的依據(jù)。但實(shí)際上,服務(wù)器的系統(tǒng)性能很難用一兩種指標(biāo)來衡量。
最理想的評估方式,莫過于建立一個接近真實(shí)業(yè)務(wù)應(yīng)用的操作環(huán)境,進(jìn)行各種壓力測試,測算出不同應(yīng)用環(huán)境下服務(wù)器系統(tǒng)的響應(yīng)時間、吞吐量等等,從而對服務(wù)器性能做出一個最接近真實(shí)狀況的評估。
然而,對大多數(shù)用戶來說,建立準(zhǔn)確的壓力測試環(huán)境是具有一定挑戰(zhàn)性的,所以很多時候,在采購服務(wù)器的過程中,就需要一個工業(yè)標(biāo)準(zhǔn)作為參照物。
那么,有這樣的參照物嗎?
是的,業(yè)界有一個曝光率極高的詞–Benchmark,就是服務(wù)器的工業(yè)標(biāo)準(zhǔn)基準(zhǔn)測試,其中包括諸如TPC、SPEC、SAP SD、Linpack和HPCC等在內(nèi)的眾多服務(wù)器性能基準(zhǔn)測試,可以從處理器性能、服務(wù)器系統(tǒng)性能、商業(yè)應(yīng)用性能直到高性能計算機(jī)的性能,給出一個量化的評價指標(biāo)供用戶選擇。那么,在如此多的標(biāo)準(zhǔn)中,用戶該如何選擇最適合自身應(yīng)用環(huán)境的評價體系呢?
實(shí)際上,這完全取決于用戶對于其應(yīng)用環(huán)境的了解??梢哉f,了解應(yīng)用性質(zhì)非常重要,不同的應(yīng)用,即使屬于同一大類,Benhmark的適用性也是因?yàn)閼?yīng)用類型的不同而不同的。例如都是數(shù)據(jù)庫系統(tǒng),也可能因?yàn)檫\(yùn)算類型的不同而對服務(wù)器有不同的要求,所以基準(zhǔn)測試的適用性也不同。
第一回:把脈兩大基準(zhǔn)體系
心中有數(shù),方可游刃有余。
在服務(wù)器基準(zhǔn)測試體系中,TPC和SPEC是最常用、最普及的兩大基準(zhǔn),深入了解其中的涵義和奧秘,對于更好地在服務(wù)器采購中運(yùn)用Benchmark工具相當(dāng)重要。
第一節(jié):了解TPC系統(tǒng)
PC體系是影響最大的評測基準(zhǔn)之一,但有多少用戶真正了解其中的含義呢?
TPC(Transaction processing Performance Council,事務(wù)處理性能委員會)是由數(shù)十家會員公司創(chuàng)建的非盈利組織,總部設(shè)在美國。TPC的成員主要是計算機(jī)軟硬件廠家,而非計算機(jī)用戶,其功能是制定商務(wù)應(yīng)用基準(zhǔn)測試程序的標(biāo)準(zhǔn)規(guī)范、性能和價格度量,并管理測試結(jié)果的發(fā)布。
作為一家非盈利性機(jī)構(gòu),事務(wù)處理性能委員會(TPC)負(fù)責(zé)定義諸如TPC-C、TPC-H和TPC-W基準(zhǔn)測試之類的事務(wù)處理與數(shù)據(jù)庫性能基準(zhǔn)測試,并依據(jù)這些基準(zhǔn)測試項(xiàng)目發(fā)布客觀性能數(shù)據(jù)。
TPC不給出基準(zhǔn)測試程序的代碼,而只給出基準(zhǔn)測試程序的標(biāo)準(zhǔn)規(guī)范。任何廠家或其他測試者都可以根據(jù)規(guī)范,最優(yōu)地構(gòu)造出自己的測試系統(tǒng)(測試平臺和測試程序)。為保證測試結(jié)果的完整性,被測試者(通常是廠家)必須提交給TPC一套完整的報告(Full Disclosure Report),包括被測系統(tǒng)的詳細(xì)配置、分類價格和包含5年維護(hù)費(fèi)用在內(nèi)的總價格。該報告必須由TPC授權(quán)的審核員核實(shí)(TPC本身并不做審計)。TPC在全球只有不到10名審核員,全部在美國。
TPC推出過11套基準(zhǔn)測試程序,分別是正在使用的TPC-App、TPC-H、TPC-C、TPC-W,過時的TPC-A、TPC-B、TPC-D和TPC-R,以及因?yàn)椴槐粯I(yè)界接受而放棄的TPC-S(Server專門基準(zhǔn)測試程序)、TPC-E(大型企業(yè)信息服務(wù)基準(zhǔn)測試程序)和TPC-Client/Server。而目前最為"流行"的TPC-C是在線事務(wù)處理(OLTP)的基準(zhǔn)測試程序,于1992年7月完成,后被業(yè)界逐漸接受。
第二節(jié):SPEC關(guān)注Java和Web
除了TPC家族,SPEC家族也是廣為人知的一大體系。
與TPC體系注重在線處理能力和數(shù)據(jù)庫查詢能力不同,SPEC服務(wù)器應(yīng)用性能測試是一個全面衡量Web應(yīng)用中java企業(yè)應(yīng)用服務(wù)器性能的基準(zhǔn)測試。
SPEC(the Standard Performance Evaluation Corporation標(biāo)準(zhǔn)性能評估機(jī)構(gòu))是一個全球性的、權(quán)威的第三方應(yīng)用性能基準(zhǔn)測試組織,它旨在確立、修改以及認(rèn)定一系列服務(wù)器應(yīng)用性能評估的標(biāo)準(zhǔn)。
SPEC服務(wù)器應(yīng)用性能基準(zhǔn)測試是一個全面衡量Web應(yīng)用中java企業(yè)應(yīng)用服務(wù)器性能的基準(zhǔn)測試。在這個基準(zhǔn)測試中,系統(tǒng)模擬一個現(xiàn)代化企業(yè)的電子化業(yè)務(wù)工作,如客戶定購查詢、產(chǎn)品生產(chǎn)制造管理、供應(yīng)商和服務(wù)器提供商管理等,給系統(tǒng)以巨大的負(fù)載,以全面測試運(yùn)行典型java業(yè)務(wù)應(yīng)用的服務(wù)器性能水平。
由于它體現(xiàn)了軟、硬件平臺的性能和成本指標(biāo),被金融、電信、證券等關(guān)鍵行業(yè)用戶作為選擇IT系統(tǒng)一項(xiàng)權(quán)威的選型基準(zhǔn)測試指標(biāo)。
目前主要包括針對CPU性能的SPEC CPU2000(已有CPU2006,但數(shù)據(jù)不是很多)、針對Web服務(wù)器的SPECweb2005、針對高性能計算的SPEC HPC2002與SPEC MPI2006、針對Java應(yīng)用的jAppServer2004與JBB2005以及其他針對圖形系統(tǒng)、網(wǎng)絡(luò)和郵件服務(wù)器的基準(zhǔn)測試指標(biāo)。
其中CPU2000和web2005兩類是被引用最廣泛的基準(zhǔn)測試指標(biāo)。
第三節(jié):三種實(shí)踐模式
成熟的企業(yè),從不盲目相信"國際通用標(biāo)準(zhǔn)",他們總是付出人力、物力、財力,來建立自己的應(yīng)用測試系統(tǒng),從而決定服務(wù)器選型。
"國際通用標(biāo)準(zhǔn)"的度量可以作為參考值,而不應(yīng)作為必要條件。尤其是一定要弄清這些流行的度量有什么含義,是在什么樣的系統(tǒng)環(huán)境中測得的,以及基準(zhǔn)程序是否符合企業(yè)真實(shí)的業(yè)務(wù)流程和運(yùn)作模式。
下面就是三種不同的檢測模式。
在真實(shí)環(huán)境中運(yùn)行實(shí)際應(yīng)用:這是最理想的方式。要求制造商或系統(tǒng)集成商配合將系統(tǒng)(含平臺、軟件和操作流程)在一個實(shí)際用戶點(diǎn)真正試運(yùn)行一段時間。這樣,用戶不僅能看到實(shí)際性能,也能觀察到系統(tǒng)是否穩(wěn)定可靠、使用是否方便、服務(wù)是否周到、配置是否足夠、全部價格是否合理。
使用用戶定義的基準(zhǔn)程序:如果第一種方式不可行,用戶可以定義一組含有自己實(shí)際應(yīng)用環(huán)境特征的應(yīng)用基準(zhǔn)測試程序。業(yè)內(nèi)有兩個典型的例子:其一,近年來由于3層應(yīng)用模型的風(fēng)靡,SAP SD基準(zhǔn)測試獲得了眾多廠商和用戶的認(rèn)可,于是在很多地方都能看見對SAP基準(zhǔn)測試數(shù)據(jù)的引用;其二,國家稅務(wù)總局曾經(jīng)開發(fā)自己的基準(zhǔn)測試程序,以幫助稅務(wù)系統(tǒng)進(jìn)行服務(wù)器選型。這種方式在中國尤其重要,因?yàn)橹袊男畔⑾到y(tǒng)有其特殊性。
使用通用基準(zhǔn)測試程序:如果前兩種均難實(shí)行,那么使用如TPC-C之類的通用基準(zhǔn)測試程序未嘗不可。但用戶應(yīng)當(dāng)尤其注意–實(shí)際應(yīng)用是否與基準(zhǔn)測試程序相符?絕大多數(shù)基準(zhǔn)測試程序都是在美國制訂的,而中國的企事業(yè)單位與美國的運(yùn)作方式常常不一樣,在使用TPC-C時,用戶應(yīng)該清楚地知道:自己的應(yīng)用是否符合批發(fā)商模式?事務(wù)請求是否與測試模式近似?對響應(yīng)時間的要求是否那么高?如果都不是,則tpmC值的參考價值就不太大了。那么不妨看看其他的更合適的測試指標(biāo),例如SPECweb2005等。
第二回:四大應(yīng)用中的Benchmark
知己知彼,才能為我所用。
應(yīng)用種類不同,所適用的Benchmark基準(zhǔn)測試也不同。只有做到對應(yīng)用類型和Benchmark種類心中有數(shù),才能在名目繁多的基準(zhǔn)測試中找到能夠真正為我所用的項(xiàng)目,從而有效地指導(dǎo)服務(wù)器平臺采購。這里以高性能運(yùn)算、在線事務(wù)處理能力、Web應(yīng)用和Java應(yīng)用四大類企業(yè)典型應(yīng)用為主,介紹了相應(yīng)"對號入座"的基準(zhǔn)測試。
第一節(jié):高性能運(yùn)算有多"高"?
高性能計算機(jī)是一個復(fù)雜的系統(tǒng),很難用幾個參數(shù)或指標(biāo)對其進(jìn)行性能評價。
為此,業(yè)界開發(fā)了多種標(biāo)準(zhǔn)測試程序試圖對高性能計算機(jī)進(jìn)行評定,但這些測試指標(biāo)通常都是對計算機(jī)某一方面進(jìn)行測試,而不能全面地說明系統(tǒng)的整體性能。
目前,比較常用的幾個基準(zhǔn)測試中,Linpack側(cè)重于系統(tǒng)浮點(diǎn)峰值運(yùn)算能力的測試;SPEC CPU2000測試的是單CPU性能及作業(yè)吞吐能力;SPEC OMP2001的結(jié)果說明了共享內(nèi)存的計算機(jī)使用共享內(nèi)存并行模式(OpenMP)的并行效率和加速比;STREAM試圖對系統(tǒng)的數(shù)據(jù)訪問能力(帶寬和延遲)進(jìn)行定量地評價等。
高性能計算用戶的應(yīng)用千差萬別,對計算機(jī)系統(tǒng)的要求也是各種各樣。所以評價高性能計算機(jī)性能的最好方法是用用戶自己的應(yīng)用程序去進(jìn)行實(shí)際的測試,或找到相似應(yīng)用的商業(yè)軟件的基準(zhǔn)測試結(jié)果。這樣的評價會更有針對性,也比較客觀。比如在制造行業(yè)中,常常需要對汽車在高速行駛情況下的氣動性能、飛機(jī)發(fā)動機(jī)內(nèi)氣體流動等情況進(jìn)行分析,相應(yīng)的商業(yè)流體力學(xué)分析軟件有Fluent、Satr-CD、Power-Flow等。而在石油行業(yè)中,比較知名的軟件有Platform等。
Linpack主宰TOP500
每年,當(dāng)全球超級計算機(jī)TOP500發(fā)布的時候,都會成為業(yè)界的關(guān)注焦點(diǎn)。名單上起起落落、沉沉浮浮的背后,牽扯著從處理器廠商到系統(tǒng)廠商、軟件廠商等等的一長串心跳,對他們來說,名單上的名次就是實(shí)力、技術(shù)、研發(fā)、前瞻性等等多個因素的考量。
那么,TOP500的名次是如何排定的呢?一項(xiàng)名為Linpack的服務(wù)器基準(zhǔn)測試就是最關(guān)鍵的依據(jù)。
作為一種性能計量標(biāo)準(zhǔn),Linpack基準(zhǔn)可以提供詳細(xì)的描述和多種硬件平臺上的性能結(jié)果。
Linpack Benchmark中使用的基準(zhǔn)測試方法主要用于解算線性方程的密集系統(tǒng)。在TOP500中,就使用了這種版本的基準(zhǔn)測試,使用戶能夠衡量系統(tǒng)的規(guī)模并對軟件進(jìn)行優(yōu)化,使其能夠在特定的硬件平臺上發(fā)揮出最佳的性能。雖然這種性能并不能反映出特定系統(tǒng)的總體性能,但它可以反映出專用系統(tǒng)解算線性方程密集系統(tǒng)的性能。因?yàn)檫@種問題很常見,而且取得的性能非常高,因此良好的性能參數(shù)對于峰值性能具有很好的參考意義。
SPECfp2006考察浮點(diǎn)運(yùn)算
1、CPU基準(zhǔn)測試SPEC CPU2006
對于一個高性能計算機(jī)來說,用戶最關(guān)注的就是它的整體運(yùn)算能力,Linpack能夠幫助用戶清晰地掌握這個系統(tǒng)的整體能力,而對于單個CPU性能及作業(yè)吞吐能力的測試,則靠另外一個基準(zhǔn)測試SPEC CPU2006來完成?;蛘哒f,對于計算密集類型的工作負(fù)荷來說,SPEC CPU2006是一個非常重要的基準(zhǔn)測試。
SPEC CPU2006能分別測量計算機(jī)系統(tǒng)的整數(shù)和浮點(diǎn)性能。其中,SPECint_base2006衡量在單處理器系統(tǒng)上的整數(shù)"速度"性能,而SPECfp_base2006則衡量在單處理器系統(tǒng)上的浮點(diǎn)"速度"性能。"整數(shù)"部分有12個程序,使用C或C++語言,它們不使用CPU的浮點(diǎn)單元;而"浮點(diǎn)數(shù)"分有 17 個程序(原來的CCPECfp2000至右14個程序),使用FORTRAN 77/90和C語言,這些程序的主要運(yùn)算是浮點(diǎn)數(shù)的。
SPECint2006和SPECfp2006的結(jié)果以執(zhí)行時間為準(zhǔn)。每個程序的執(zhí)行時間和一個參考平臺(Sun Ultra5/10 300MHz)相比,計算出其倍數(shù)。如果執(zhí)行時間和參考平臺相同,結(jié)果就是100。如果只花了一半時間完成,結(jié)果就是200。"整數(shù)"的12個程序的結(jié)果,取其平均值,得到的就是SPECint2006的測試結(jié)果。"浮點(diǎn)數(shù)"的17個程序也是一樣。
由于SPEC CPU2006的測試程序都是源代碼形式(以保證跨平臺測試),所以編譯器效率就顯得十分重要。SPEC CPU2006規(guī)定,測試結(jié)果有"Base"和"Peak"兩種結(jié)果。"Base"測試中,對于編譯時的最佳優(yōu)化參數(shù)有所規(guī)定(所有的程序都需使用同樣的參數(shù),且參數(shù)數(shù)目不能超過四個),而"Peak"測試則比較寬松。