撥開服務(wù)器評測體系迷霧
相信實踐:最佳檢驗方式
眾所周知,成熟的企業(yè)從不相信任何“國際通用標(biāo)準(zhǔn)”,而是花相當(dāng)精力,比如預(yù)算的5%,使用自己的應(yīng)用來測試系統(tǒng),從而決定選型。“國際通用標(biāo)準(zhǔn)”的度量可以作為參考值,而不應(yīng)作為必要條件。尤其是一定要弄清這些流行度量有什么含義,是在什么樣的系統(tǒng)環(huán)境中測得的,以及基準(zhǔn)程序是否符合企業(yè)真實的業(yè)務(wù)流程和運(yùn)作模式?! ∠旅婢褪侨N不同的檢測模式
在真實環(huán)境中運(yùn)行實際應(yīng)用
這是最理想的方式。要求制造商或系統(tǒng)集成商配合將系統(tǒng)(含平臺、軟件和操作流程)在一個 實際用戶點(diǎn)真正試運(yùn)行一段時間。這樣,用戶不僅能看到實際性能,也能觀察到系統(tǒng)是否穩(wěn)定可靠、使用是否方便、服務(wù)是否周到、配置是否足夠、全部價格是否合理。
使用用戶定義的基準(zhǔn)程序
如果第一種方式不可行,用戶可以定義一組含有自己實際應(yīng)用環(huán)境特征的應(yīng)用基準(zhǔn)程序。業(yè)內(nèi)有兩個典型的例子:其一是,近年來由于3層應(yīng)用模型的風(fēng)靡,SAP SD基準(zhǔn)獲得了眾多廠商和用戶的認(rèn)可,于是在很多地方都能看見對SAP測試數(shù)據(jù)的引用;其二是,國家稅務(wù)總局曾經(jīng)開發(fā)自己的基準(zhǔn)程序,以幫助稅務(wù)系統(tǒng)進(jìn)行服務(wù)器選型。這種方式在中國尤其重要,因為中國的信息系統(tǒng)有其特殊性。
使用通用基準(zhǔn)程序
如果前兩種均難實行,那么使用如TPC-C之類的通用基準(zhǔn)程序未嘗不可。但用戶應(yīng)當(dāng)尤其注意——實際應(yīng)用是否與基準(zhǔn)程序相符?絕大多數(shù)基準(zhǔn)程序都是在美國制訂的,而中國的企事業(yè)單位與美國的運(yùn)作方式常常不一樣,在使用TPC-C時,用戶應(yīng)該清楚地知道:自己的應(yīng)用是否符合批發(fā)商模式?事務(wù)請求是否與測試模式近似?對響應(yīng)時間的要求是否那么高?如果都不是,則tpmC值的參考價值就不太大了。那么不妨看看其他的更合適的測試指標(biāo),例如SPECweb2005等
主流基準(zhǔn)測試概覽 |
||
基準(zhǔn)名稱 |
基本描述 |
側(cè)重點(diǎn) |
TPC-C |
單位為tpmC,對系統(tǒng)在線事務(wù)處理能力進(jìn)行評價,含義為每分鐘內(nèi)系統(tǒng)處理新訂單的個數(shù)。 |
主要是服務(wù)器OLTP,主要是模擬企業(yè)MIS、ERP系統(tǒng)來考驗服務(wù)器聯(lián)機(jī)業(yè)務(wù)處理能力 |
TPC-H |
單位為QphH@size,表示系統(tǒng)在處理特定資料量的數(shù)據(jù)庫時,系統(tǒng)在一小時之內(nèi)能完成查詢的數(shù)量。 |
主要目的是考驗基于特定查詢的決策支持能力,強(qiáng)調(diào)服務(wù)器在數(shù)據(jù)挖掘、分析處理上面的能力。 |
SPEC CPU2000 |
單位為比值,是系統(tǒng)執(zhí)行測試程序的時間與參考系統(tǒng)的比值。 |
考察系統(tǒng)CPU運(yùn)算能力和內(nèi)存性能。 |
SPECweb 2005 |
指標(biāo)為整數(shù),含義為系統(tǒng)能同時相應(yīng)的最大Http連接數(shù)。 |
側(cè)重CPU、內(nèi)存、系統(tǒng)I/O和網(wǎng)絡(luò)的整體性能。 |
SPECjAppServer 2004 |
單位為jops@配置,即基于java平臺的應(yīng)用服務(wù)器每秒能執(zhí)行的java操作數(shù)。 |
衡量JIEE 1.3應(yīng)用服務(wù)器的性能 |
Linpack |
指標(biāo)為實數(shù),指HPC采用高斯消元法求解一元N次稠密線性代數(shù)方程組的每秒處理次數(shù)。 |
衡量HPC單機(jī)或集群的浮點(diǎn)性能。 |
HPCC |
包括7個子項,為HPL、雙精度矩陣乘法、內(nèi)存帶寬、并行矩陣轉(zhuǎn)置、隨機(jī)存儲、傅立葉變換與通信帶寬延遲。 |
全面衡量HPC系統(tǒng)性能,缺陷是比較復(fù)雜,測試時間較長。 |
SAP SD |
指標(biāo)涵義為一定數(shù)量規(guī)模的SAP SD客戶端發(fā)出SAPS請求,系統(tǒng)的響應(yīng)時間與每小時能完成的訂單數(shù)量。 |
衡量單一系統(tǒng)同時執(zhí)行應(yīng)用程序與數(shù)據(jù)庫的能力。 |
SPEC關(guān)注CPU和它們不使用CPU的浮點(diǎn)單元;而“浮點(diǎn)數(shù)”部分有 14 個程序,使用 FORTRAN 77/90 和C語言,這些程序的主要運(yùn)算是浮點(diǎn)數(shù)的。 SPECint2000 和 SPECfp2000 的結(jié)果,以執(zhí)行時間為準(zhǔn)。每個程序的執(zhí)行時間和一個參考平臺(Sun Ultra5/10 300MHz)相比,計算出其倍數(shù)。如果執(zhí)行時間和參考平臺相同,結(jié)果就是100。如果只花了一半時間完成,結(jié)果就是200。“整數(shù)”的12 個程序的結(jié)果,取其平均值,得到的就是SPECint2000 的測試結(jié)果。“浮點(diǎn)數(shù)”的 14 個程序也是一樣。 由于SPEC CPU2000的測試程序都是源代碼形式(以保證跨平臺測試),所以編譯器效率就顯得十分重要。SPEC CPU2000規(guī)定,測試結(jié)果有“Base”和“Peak”兩種結(jié)果。“Base”測試中,對于編譯時的最佳優(yōu)化參數(shù)有所規(guī)定(所有的程序都需使用同樣的參數(shù),且參數(shù)數(shù)目不能超過四個),而“Peak”測試則比較寬松?! ×硗?,因為 SPEC CPU2000的程序都是針對單CPU的系統(tǒng)設(shè)計,因此,在多CPU系統(tǒng)上,如果要測試多CPU系統(tǒng)的效率,則是采取同時執(zhí)行多個相同程序的方法,這個結(jié)果就是“Rate”。因此,同樣有 SPECint_rate 和 SPECfp_rate 的測試結(jié)果。需要說明的是,“Rate”測試同時執(zhí)行多個相同的程序,但程序之間并不會有關(guān)聯(lián),所以這是一種理論計算能力測試,并不代表實際并行計算能力。Web服務(wù) 參考Web2005 SPEC web2005測試的原理是,通過多臺客戶機(jī)向服務(wù)器發(fā)出Http Get請求,請求調(diào)用Web服務(wù)器上的網(wǎng)頁文件,這些文件從數(shù)千字節(jié)到數(shù)兆字節(jié)不等。在相同的時間里,服務(wù)器回答的請求越多,就表明服務(wù)器對客戶端的處理能力越強(qiáng),系統(tǒng)的Web性能就越好。 目前SPECweb2005測試榜上,性能最高的是2005年11月發(fā)布的Sun Fire T2000系統(tǒng),此系統(tǒng)的基本配置為1顆8核心的UltraSPARC T1(1.2GHz)/32GB內(nèi)存/3×73GB萬轉(zhuǎn)SAS硬盤/Solaris 10/UFS文件系統(tǒng)/Java2 Runtime Environment,能夠同時響應(yīng)14001個Http請求。這一性能比排行第二的系統(tǒng)高出77%。如果用戶知道兩套系統(tǒng)的價格接近,那么就可輕易得知,采購Fire T2000作為Web服務(wù)器,性價比將比采購第二名的系統(tǒng)高出許多?! 〔贿^SPECweb2005的缺陷也正在于此,它不像TPC-C那樣要求廠商提供測試環(huán)境的總成本,對于實際采購的指導(dǎo)意義有所削弱。 Web #p#page_title#e#
與TPC體系注重在線處理能力和數(shù)據(jù)庫查詢能力不同,SPEC體系中最廣為人知的兩個子項,是衡量CPU、內(nèi)存性能的CPU2000和Web服務(wù)器性能的web2005。
除了TPC家族,SPEC家族也是廣為人知的一大體系。SPEC指標(biāo)體系由Standard Performance Evaluation Corp.制定,目前主要包括針對CPU性能的SPEC CPU2000(已有CPU2006,但尚無數(shù)據(jù))、針對Web服務(wù)器的SPECweb2005、針對高性能計算的SPEC HPC2002與SPEC MPI2006、針對Java應(yīng)用的jAppServer2004與JBB2005以及對圖形系統(tǒng)、網(wǎng)絡(luò)和郵件服務(wù)器的測試指標(biāo)?! ∑渲蠧PU2000和web2005兩類是被引用最廣泛的指標(biāo)。CPU2000 注重CPU SPEC CPU2000 是一組針對 CPU 和內(nèi)存的測試,它主要測試的對象是 CPU、內(nèi)存,不測試硬盤、I/O 效率和網(wǎng)絡(luò)等部分。SPEC CPU2000 由許多源代碼程序組成,這些程序都從實際的應(yīng)用(主要來自配置1~4顆CPU的工作站應(yīng)用)中取出來的,例如 164.gzip 就是gzip 壓縮程序。這些程序區(qū)分成“整數(shù)”和“浮點(diǎn)數(shù)”兩組。SPECint2000 就是“整數(shù)”部分,而 SPECfp2000 則是“浮點(diǎn)數(shù)”部分。“整數(shù)”部分有 12 個程序,使用 C 或 C++ 語言,
用戶總希望有一種簡單、高效的度量標(biāo)準(zhǔn),來量化評價服務(wù)器系統(tǒng),以便作為選型的依據(jù)。但實際上,服務(wù)器的系統(tǒng)性能很難用一兩種指標(biāo)來衡量。包括TPC、SPEC、SAP SD、Linpack和HPCC在內(nèi)的眾多服務(wù)器評測體系,從處理器性能、服務(wù)器系統(tǒng)性能、商業(yè)應(yīng)用性能直到高性能計算機(jī)的性能,都給出了一個量化的評價指標(biāo)。在如此多的標(biāo)準(zhǔn)中,用戶該如何選擇最適合自身應(yīng)用環(huán)境的評價體系呢?這里,我們選擇了應(yīng)用面較廣泛的TPC和SPEC,作一個深入介紹。
■ 走出誤區(qū)
深入TPC-C指標(biāo)
TPC體系是影響最大的評測基準(zhǔn)之一,尤其近兩年,國內(nèi)媒體對TPC指標(biāo)的報道可謂海量。但有多少用戶真正了解其中的含義呢?本文以TPC-C為例,讓用戶深入了解這項基準(zhǔn)測試。
tpmC值在國內(nèi)外被廣泛用于衡量服務(wù)器系統(tǒng)的事務(wù)處理能力。但究竟什么是tpmC值呢?筆者曾向一些用戶、專業(yè)媒體記者乃至某些國外大公司的技術(shù)人員問過這個問題,但回答的精確度與tpmC值的流行程度差異甚遠(yuǎn)。不少人將之誤寫為TPMC,甚至與TPC組織混為一談。
TPC(Transactionprocessing Performance Council,事務(wù)處理性能委員會)是由數(shù)十家會員公司創(chuàng)建的非盈利組織,總部設(shè)在美國。TPC的成員主要是計算機(jī)軟硬件廠家,而非計算機(jī)用戶,其功能是制定商務(wù)應(yīng)用基準(zhǔn)程序的標(biāo)準(zhǔn)規(guī)范、性能和價格度量,并管理測試結(jié)果的發(fā)布。
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)的審核員核實(TPC本身并不做審計)。TPC在全球只有不到10名審核員,全部在美國。
TPC推出過11套基準(zhǔn)程序,分別是正在使用的TPC-App、TPC-H、TPC-C、TPC-W,過時的TPC-A、TPC-B、TPC-D和TPC-R,以及因為不被業(yè)界接受而放棄的TPC-S(Server專門測試基準(zhǔn)程序)、TPC-E(大型企業(yè)信息服務(wù)測試基準(zhǔn)程序)和TPC-Client/Server。而目前最為“流行”的TPC-C是在線事務(wù)處理(OLTP)的基準(zhǔn)程序,于1992年7月完成,后被業(yè)界逐漸接受。
TPC-C使用三種性能和價格度量,其中性能由tpmC(transactions per minute,tpm)衡量,C指TPC中的C基準(zhǔn)程序。它的定義是每分鐘內(nèi)系統(tǒng)處理的新訂單個數(shù)。TPC-C還經(jīng)常以系統(tǒng)性能價格比的方式體現(xiàn),單位是$/tpmC,即以系統(tǒng)的總價格(單位是美元)/tpmC數(shù)值得出。
解讀tpmC
從TPC-C的定義不難知道,這套基準(zhǔn)程序是用來衡量整個IT系統(tǒng)的性能,而不是評價服務(wù)器或某種硬件系統(tǒng)的標(biāo)準(zhǔn),而且tpmC數(shù)值的高低直接受到各個環(huán)節(jié)的影響,右表大概可以說明系統(tǒng)設(shè)置對tpmC測試的影響。此處的“IT系統(tǒng)”包括服務(wù)器、外設(shè)(如硬盤或RAID)、服務(wù)器端操作系統(tǒng)、數(shù)據(jù)庫軟件、客戶端及其操作系統(tǒng)、數(shù)據(jù)庫軟件和網(wǎng)絡(luò)連接等。因此,如何解讀tpmC數(shù)值會因不同的采購需求有非常大的差異。
tpmC測試指標(biāo)與硬件的關(guān)聯(lián)度 |
|||||
交易類型 |
復(fù)雜程度 |
發(fā)生頻率 |
訪問表的數(shù)量(內(nèi)存、磁盤IO相關(guān)) |
平均邏輯IO數(shù)目 |
CPU的負(fù)載(%) |
新訂單 |
復(fù)雜交易 |
45% |
8 |
46 |
53 |
付款 |
復(fù)雜交易 |
43% |
4 |
8 |
11 |
交貨 |
|
4% |
4 |
70 |
8 |
訂單查詢 |
簡單交易 |
4% |
3 |
12 |
1 |
庫存查詢 |
復(fù)雜交易 |
4% |
3 |
401 |
27 |
上述5種交易中,除付貨交易是事后批處理,其余4種皆為聯(lián)機(jī)交易。要注意的是,在處理新訂單的同時,系統(tǒng)還要處理其他4類事務(wù)請求。通常而言,新訂單請求不可能超出全部事務(wù)請求的45%,因此,當(dāng)一個系統(tǒng)的性能為1000tpmC時,它每分鐘實際處理的請求數(shù)是2000多個。 數(shù)據(jù)來源:www.tpc.org |