用戶總希望有一種簡單、高效的度量標准,來量化評價服務器系統,以便作為選型的依據。但實際上,服務器的系統性能很難用一兩種指標來衡量。包括 TPC、SPEC、SAP SD、Linpack和HPCC在內的眾多服務器評測體系,從處理器性能、服務器系統性能、商業應用性能直到高性能計算機的性能,都給出了一個量化的評價指標。在如此多的標准中,用戶該如何選擇最適合自身應用環境的評價體系呢?這裡,我們選擇了應用面較廣泛的TPC和SPEC,作一個深入介紹。
■ 走出誤區
深入TPC-C指標
TPC體系是影響最大的評測基准之一,尤其近兩年,國內媒體對TPC指標的報道可謂海量。但有多少用戶真正了解其中的含義呢?本文以TPC-C為例,讓用戶深入了解這項基准測試。
tpmC值在國內外被廣泛用於衡量服務器系統的事務處理能力。但究竟什麼是tpmC值呢?筆者曾向一些用戶、專業媒體記者乃至某些國外大公司的技術人員問過這個問題,但回答的精確度與tpmC值的流行程度差異甚遠。不少人將之誤寫為TPMC,甚至與TPC組織混為一談。
TPC(Transactionprocessing Performance Council,事務處理性能委員會)是由數十家會員公司創建的非盈利組織,總部設在美國。TPC的成員主要是計算機軟硬件廠家,而非計算機用戶,其功能是制定商務應用基准程序的標准規范、性能和價格度量,並管理測試結果的發布。
TPC不給出基准程序的代碼,而只給出基准程序的標准規范。任何廠家或其他測試者都可以根據規范,最優地構造出自己的測試系統(測試平台和測試程序)。為保證測試結果的完整性,被測試者(通常是廠家)必須提交給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,以及因為不被業界接受而放棄的TPC-S(Server專門測試基准程序)、TPC-E(大型企業信息服務測試基准程序)和 TPC-Client/Server。而目前最為“流行”的TPC-C是在線事務處理(OLTP)的基准程序,於1992年7月完成,後被業界逐漸接受。
TPC-C使用三種性能和價格度量,其中性能由tpmC(transactions per minute,tpm)衡量,C指TPC中的C基准程序。它的定義是每分鐘內系統處理的新訂單個數。TPC-C還經常以系統性能價格比的方式體現,單位是$/tpmC,即以系統的總價格(單位是美元)/tpmC數值得出。
解讀tpmC
從TPC-C的定義不難知道,這套基准程序是用來衡量整個IT系統的性能,而不是評價服務器或某種硬件系統的標准,而且tpmC數值的高低直接受到各個環節的影響,右表大概可以說明系統設置對tpmC測試的影響。此處的“IT系統”包括服務器、外設(如硬盤或 RAID)、服務器端操作系統、數據庫軟件、客戶端及其操作系統、數據庫軟件和網絡連接等。因此,如何解讀tpmC數值會因不同的采購需求有非常大的差異。
tpmC測試指標與硬件的關聯度 交易類型 復雜程度 發生頻率 訪問表的數量(內存、磁盤IO相關) 平均邏輯IO數目 CPU的負載(%) 新訂單 復雜交易 45% 8 46 53 付款 復雜交易 43% 4 8 11 交貨 4% 4 70 8 訂單查詢 簡單交易 4% 3 12 1 庫存查詢 復雜交易 4% 3 401 27 上述5種交易中,除付貨交易是事後批處理,其余4種皆為聯機交易。要注意的是,在處理新訂單的同時,系統還要處理其他4類事務請求。通常而言,新訂單請求不可能超出全部事務請求的45%,因此,當一個系統的性能為1000tpmC時,它每分鐘實際處理的請求數是2000多個。 數據來源:www.tpc.org
以服務器為例。在很多廠家的TPC測試系統中,服務器的價格只是系統總價格的25%或更小,而硬盤的價格有可能占到總價格的30%以上,因為TPC-C要求被測系統必須保存180天的事務記錄(這一趨勢從一些最新的TPC-C測試結果來看,會愈演愈烈)。如果同樣的服務器被用到用戶的環境中,廠家報的tpmC值就意義不大,因為用戶的實際系統與廠家原來用於TPC測試的系統大不一樣。當同樣的主機用在不同的系統中時,tpmC值可能有相當大的變化,現在許多用戶還沒有意識到這一點。
尤其需要服務器采購用戶注意的是,tpmC指標更多的是衡量從Client到終端網絡的性能區域(如左圖所示),而不是通常誤認為的服務器到企業端網絡的性能。由此可見,如果用戶是建立一套全新的業務系統,那麼無妨多借鑒tpmC的性能指標,如果只是采購某種或某些硬件設備,則需要參考更多的指標。
對於tpmC數值著迷的用戶而言,一個現實問題是,實現高tpmC指標的代價是否能夠承受,畢竟TPC-C都是很復雜的基准程序,做一個嚴格的測試非常消耗資源,廠商通常不會給TPC報告出全部花費的金錢和時間。
實際上,正因為tpmC(其他評測指標也大都一樣)受系統優化影響較大,業界對於是否應該在測試中進行優化向來爭議頗多。在1993年, 當時三大IT公司的專家就對OLTP性能測試的優化提出過反對意見——DEC的 Jim Gray (現為TPC-C委員會專家) 與Walt Kohler 、天騰公司(TANDEN)的Charles Levine 和IBM的Steve Kiss共同發表了對OLTP性能測試指標是否應該進行人為優化的看法:
“一個好的性能測試指標是不會依賴於特殊情況下的優化。最理想的情況應該是:一個測試指標在測試過程中所表現出的性質和能力, 以及對測試所做的優化能夠確實提供對現實世界中用戶實際應用的性能改進。然而,事與願違,某些廠商迫於標准測試指標所帶來的巨大市場壓力,他們花費巨大的精力在如何改進測試結果的同時還能降低價格比率,而全然不顧所做的這一切優化究竟是否給用戶帶來了真實的利益。”
評測組織網站:
http://tpc.org/
http://www.spec.org/
Storage:
http://www.storageperformance.org