1.什么是TPC?
TPC(Transaction process performance Council)事務處理性能測試委員會,有兩個主要職責:一是制定計算機事務處理能力測試標准,二是監督其執行。其總部位於美國,絕大多數會員都是美、日、西歐的大公司。
TPC的出版物是開放的,可以通過網絡獲取(http://www.tpc.org)。TPC不給出基准程序的代碼,而只給出基准程序的標准規范(Standard Specification)。任何廠家或其它測試者都可以根據規范,最優地構造出自己的系統(測試平台和測試程序)。為保證測試結果的客觀性,被測試者(通常是廠家)必須提交給TPC一套完整的報告(Full Disclosure Report),包括被測系統的詳細配置、分類價格和包含五年維護費用在內的總價格。該報告必須由TPC授權的審核員核實(TPC本身並不做審計)。現在全球只有幾個審核員,全部在美國。
2.TPC系列測試標准發展歷史
(1)80年代初,出現OLTP
OLTP事務處理模式(On-Line Transaction Process在線事務處理),是一種新的在線計算模式。與70年代占統治地位的是批量計算模式不同,它采用相對單純的方式直接通過在線數據庫系統進行簡單的事務處理。商業日常事務處理自動化的第一個應用程序是自動提款事務處理(Automated teller transaction—ATM)。
(2)80年代中期,IBM提出TP1
TP1(Transaction Process)測試標准,主要是度量系統在批模式下處理ATM事務的性能。但TP1標准有兩個缺陷:一是忽略網絡和OLTP系統中用戶交互部分的系統開銷,因而可能產生不真實的性能報告;二是標准的定義太貧乏,並且無法監控標准測試的執行過程。因此,TP1的影響較小,只得到了少量的用戶認可。
(3)1985年2月,Jim Gray和24位科學界和工業界同仁提出DebitCredit法
DebitCredit(借方信任)法是《事務處理能力的度量(A Measure of Transaction Processing Power)》的文章中提出的一種在線事務處理能力測試方法。與TP1標准不同,Gray提出的標准是一種真正的系統級標准,其中包括了網絡和用戶交互的開銷。但是有個缺陷:沒有一個標准來監督測試的執行和結果發布。一些廠商隨意用TP1或DebitCredit進行測試,有些廠商甚至刪掉DebitCredit標准中的一些關鍵要求以期改善他們的測試結果。
(4)1988年8月,ITOM牽頭8家公司成立TPC
ITOM作為(為中小企業提供IT技術支持的國際知名公司)創立者之一的OmriSerlin,成功說服8家公司成立了TPC。
(5)1989年11月,TPC發布TPC-A,成立后第一個標准。
TPC-A澄清了混亂的市場,將上世紀80年代中期建立的TP1和DebitCredit模型法典化,形成了標准。例如要求90%的事務處理應在2秒內完成;將每個測試系統需要的交互終端數降低到10台,而且規定終端的費用應包含在系統價格中。
(6)1992年7月,TPC發布TPC-C,OLTP測試新標准,用於替代TPC-A。
(7)1994年4月,TPC發布TPC-D,決策支持系統測試標准。
(8)1999年,TPC發布TPC-H,決策支持系統測試新標准,用於替代TPC-D。
(9)2004年,TPC發布TPC-App,應用服務器測試標准
(10)2007年,TPC發布TPC-E,OLTP測試新標准,用於替代TPC-C。但TPC-C測試是一個較為成熟、被計算機廠商及用戶廣為接受的測試模型,所以替代過程不是一蹴而就,目前TPC-C標准仍被使用。
3.TPC測試標准分類
- 聯機在線事務處理系統(OLTP)測試標准:TPC-C、TPC-E(最新)
- 決策支持/大數據(DS)測試標准:TPC-H、TPC-DS(最新)
- 服務器虛擬化(VMS)測試標准:TPC-VMS
4.TPC-C
(1)規范概要
TPC-C是一種旨在衡量聯機事務處理(OLTP)系統性能與可伸縮性的行業標准基准測試項目。這種基准測試項目將對包括查詢、更新及隊列式小批量事務在內的廣泛數據庫功能進行測試。許多IT專業人員將TPC-C視為衡量“真實”OLTP系統性能的有效指示器。
TPC-C測試規范中模擬了一個比較復雜並具有代表意義的OLTP應用環境:假設有一個大型商品批發商,它擁有若干個分布在不同區域的商品庫;每個倉庫負責為10個銷售點供貨;每個銷售點為3000個客戶提供服務;每個客戶平均一個訂單有10項產品;所有訂單中約1%的產品在其直接所屬的倉庫中沒有存貨,需要由其他區域的倉庫來供貨。
該系統需要處理的交易為以下幾種:
New-Order:客戶輸入一筆新的訂貨交易;
Payment:更新客戶賬戶余額以反映其支付狀況;
Delivery:發貨(模擬批處理交易);
Order-Status:查詢客戶最近交易的狀態;
Stock-Level:查詢倉庫庫存狀況,以便能夠及時補貨。
對於前四種類型的交易,要求響應時間在5秒以內;對於庫存狀況查詢交易,要求響應時間在20秒以內。
(2)評測指標
TPC-C的測試結果主要有兩個指標:
- tpmC流量指標(Transactions per minute C),越大越好
按照TPC的定義,流量指標描述了系統在執行Payment、Order-status、Delivery、Stock-Level這四種交易的同時,每分鍾可以處理多少個New-Order交易。所有交易的響應時間必須滿足TPC-C測試規范的要求。
- Price/tpmC性價比(Price/Performance),越小越好
即測試系統價格(指在美國的報價)與流量指標的比值。
(3)發布結果
各廠商的TPC-C測試結果都按TPC組織規定的兩種形式發布:測試結果概要(Executive Summary)和詳細測試報告(Full Disclosure Report)。測試結果概要中描述了主要的測試指標、測試環境示意圖以及完整的系統配置與報價,而詳細測試報告中除了包含上述內容外,還詳細說明了整個測試環境的設置與測試過程。
以下是TPC-C性能測試排名前三的廠家及其系統:
5.TPC-E 權威服務器測試的新“龍頭”
TPC組織在2007年3月19日推出了全新的TPC-E OLTP(聯機事務處理)基准測試,以取代已經實行了14年的TPC-C。原因主要有兩個:一是TPC-C的模型已經老化,二是TPC-C的測試成本太高。
TPC-C的模型還是十幾年前的東西——過時的C/S架構,模擬的是批發商系統,簡單的數據庫和業務邏輯。而當今WEB2.0時代的OLTP應用,大多采用流行的B/S架構,需要更大規模的並行處理能力,數據庫和業務邏輯也更加復雜。顯然,如果再用過去的模型來模擬今天的應用環境,確實顯得有些不合時宜了。
從TPC-C到TPC-E,該測試更加模擬實際和復雜,具有更高的技術權威性。
- 首先,服務器性能測試完成了從C/S架構到B/S架構的過渡。隨着B/S架構的廣泛發展,TPC-E測試將具備更廣泛的基礎和代表性。
- 其次,數據類型由3種擴展為10種,事務類型由5種增加到12種,數據庫構成更為復雜,更符合實際應用,對服務器性能要求更高。
- 最后,測試數據更加真實,來自於美國和加拿大的真實人口統計,其測試結果對金融、證券等高端行業的服務器應用具有重要的參考價值。
但是我們也注意到,TPC-E畢竟是新玩意,參與的廠商數量、用戶的認可程度、支持的操作系統(目前僅支持WINDOWS)、支持的數據庫類型(目前僅支持微軟SQL SERVER)都還有限。
(1)規范概要
TPC-E的測試模擬了全球最大的股票交易市場——紐約證券交易所的日常交易流程,如賬戶查詢、在線交易和市場調研等。整合了B2B和C2B兩種交易模式。TPC-E所模擬的實際應用如下:
TPC-E測試,加壓端會模擬真實業務情況對系統加壓,是系統在滿負載的情況下,運行兩個小時,取這段時間的最終結果為最終成績。而且在對系統加壓時,各種類型的操作比例都根據實際應用作了嚴格的規定,例如訂單交易占9%-10%,以求與真實的證券公司保持一致;同時,高並發訪問量和數據響應時間等因素也有嚴格的限制,在10種業務處理中,系統延遲最大不能超過3秒。
與TPC-C測量事務類型只有四種相比較,TPC-E的事務類型更加豐富,數量達到了十二種,其中包括交易查詢事務、交易執行事務、交易結果更新事務等(具體參見下表)。前10種事務按照一定比例混合即成為最終測試事務合集。在這12種事務中數據維護事務、交易清理事務較為特殊,他們不是由客戶端發起請求,而是數據庫自身維護所要完成的工作,數據維護事務每秒鍾執行一次,而交易清理事務每次測試開始時執行一次。每個事務對應數據庫管理系統中的一個或多個帶輸入和輸出參數的存儲過程,單個存儲過程稱為一個事務幀。TPC-E測試標准要求每項事務中90%的響應時間要在某一個指定時間內完成,這是出於在實際環境中對客戶真實應用情況的一個考慮。雖然不同的事務所要求的響應時間約束也不同,但基本上都是要求在3秒鍾內完成。
TPC-E事務描述表如下:
雖然TPC-E使用了更多的表結構及事務,但由於TPC-E使用了更有效的存儲過程,從而減少了對磁盤I/O的利用,降低了系統對磁盤數目的要求——使用同一數據庫服務器,TPC-E相比TPC-C可以減少2/3的硬盤數目,這對於降低參加測試系統的整體費用具有非常重要的意義。
(2)評測指標
與TPC-C一樣,TPC-E的測試結果也主要有兩個指標:
- 性能指標tpsE(transactions per second E),越大越好
性能指標是指系統在執行多種交易時,每秒鍾可以處理多少交易(tpmC是以分鍾為單位)。tpsE=交易執行事務總數/ Measurement Interval(測量區間);
- 性價比(美元/tpsE),越小越好
性價比則是指系統價格與前一指標的比值。
(3)評測結果
以下是TPC-E性能測試排名前三的廠家及其系統:
TPC-H 商業智能計算測試
(1)規范概要
TPC-H是TPC組織制定的一套決策支持系統測試基准。主要目的是評價特定查詢的決策支持能力,強調服務器在數據挖掘、分析處理方面的能力。它由一套面向零售業務的即席查詢和並發數據修改組成,可以檢索大量數據,執行高度復雜的查詢,並為關鍵業務問題提供答案。
TPC-H 主要是用 3NF(第三范式) 實現了一個數據倉庫,共包含 8 個基本關系表,包含22 個查詢測試語句(Q1~Q22),遵循SQL92標准。其中關系表數據量可以設定從 1G~3T 不等。SQL語句具有統計查詢、多表關聯、sum、復雜條件、group by、order by等組合方。
關系表具體說明如下:
PART(零件信息)、SUPPLIER(供貨商信息)、PARTSUPP(供貨商的零件信息)、CUSTOMER(消費者信息)、NATION(國家信息)、LINEITEM(在線商品的信息)、REGION(地區信息)、ORDERS(訂單信息)
(2)評價指標
- 性能指標(QphH@size),越大越好
每小時執行的查詢數。其中H 表示每小時系統執行復雜查詢的平均次數,size 表示數據庫規模的大小。它能夠反映出系統在處理查詢時的能力,包括執行查詢所選的數據庫大小,單個流提交查詢時的查詢處理能力,以及多個並發用戶提交查詢時的查詢吞吐量。
- 性價比($ / QphH @ Size),越小越好
性價比則是指系統價格與前一指標的比值。
TPC-DS
新興的數據倉庫開始采用新的模型,如星型模型、雪花模型。TPC-H已經不能精准反映當今數據庫系統的真實性能。為此,TPC組織推出了新一代的面向決策應用的TPC-DS 基准。
(1)規范概要
TPC-DS是決策支持的基本測試,提供了通用決策支持系統的性能評估。基准測試的結果衡量了單用戶模式下的響應時間;多用戶模式下的查詢吞吐量;特定操作系統和硬件的數據維護性能;在受限復雜的環境下數據處理系統、支持多用戶決策。
TPC-DS的特點跟大數據的分析挖掘應用非常類似,已經成為客觀衡量多個不同Hadoop版本以及SQL on Hadoop技術的最佳測試集。比如Hadoop等大數據分析技術也是對海量數據進行大規模的數據分析和深度挖掘,也包含交互式聯機查詢和統計報表類應用,同時大數據的數據質量也較低,數據分布是真實而不均勻的。
A.數據模型:
TPC-DS采用星型、雪花型等多維數據模式。它包含24張表,99個測試SQL案例,遵循SQL’99和SQL 2003的語法標准。主要特點是:
- 包含7張事實表和17張維度表,平均每張表18列,且含豐富的主外鍵約束。
- 數據真實,數據量大,且含數據傾斜。
- 測試案例SQL比較復雜,幾乎所有案例都有很高的IO負載和CPU計算需求
- 測試案例中包含各種業務模型(如分析報告型,迭代式的聯機分析型,數據挖掘型等),並且都是在回答真實的商業問題
- 基准提供了被測試數據庫測試數據生成程序生成測試數據文本文件,測試人員通過使用ETL 工具將其裝載到被測DBMS;
- 基准提供99 個查詢模板及查詢語句生成程序,這些查詢模板模擬迭代的OLAP 查詢、數據挖掘工具的抽取查詢、即席( ad-hot) 查詢以及大量定制的常見的報表查詢;
- 基准提供了5 種方法模擬現實應用的ETL 過程,包括不需保留歷史記錄的維度數據維護,需保留歷史記錄的維度數據維護,事實表數據插入和數據刪除維護以及庫存表數據刪除維護。
- 測試數據加載主要包括: 被測系統准備、數據文件生成、測試數據庫創建、基礎表創建、數據加載、約束驗證、輔助數據結構( 如索引) 創建、表和輔助數據統計分析等。
- Power 測試是用於評測數據庫對單個查詢流的處理能力。
- Throughput 測試是用於測試DBMS 對多個查詢流並發查詢和操作的處理能力,分為數據查詢和數據維護各兩個子步驟。

(2)評價指標
- 性能指標(QphDS@SF),反映每秒的有效查詢數據量的性能指標,越大越好。其計算公式為:
- 性價比指標($/QphDS@SF),反映每秒每查詢數據量的性價比指標,值越小說明性價比越高。其計算公式為:
每個標度因子和測試數據庫中的每個表的行數見3-2表中的數據庫行數。
