如何實施Benchmark標準測試(之一)---問題的提出及Tpc-C標準
來源:互聯網
上載者:User
標準|問題
如何實施Benchmark標準測試
---問題的提出及Tpc-C標準
Last Updated: Monday, 2004-10-18 16:36 Eygle
1.問題的提出
不管你實施怎樣的一個系統,你可能都考慮過這樣的一系列問題:
我應該採購怎樣的裝置?
我的系統效能如何?
我的系統能夠承受多少使用者?
我的系統能夠承受多少並發?
效能問題會在何時出現?
我將在何時升級?
顯然,回答這些問題並非那麼簡單,更多的人是根據經驗給出一個經驗值,用來評估系統.
但是在大系統設計過程中,經驗顯示是不足夠的,你必須拿出足夠的證據來說明你的架構,你的系統必須在理論上能夠滿足使用者的需求.
到這裡我們已經看到,一個最重要的內容被引入了,那就是:使用者需求.
這符合經濟規律,有需求才有發展,需求推動一切.於是也就有了今天我們要討論的標準測試(benchmark).
最近一段時間,一直參與一個大系統的方案設計、規劃與測試,現在把一些心得寫出來,供大家參考.
2.TPC組織
關於Benchmark測試,最有名的就是TPC(Transaction Processing Performance Council,交易處理效能委員會)組織了.你可以在其
官方網站 www.tpc.org 獲得更為詳細的資訊.TPC組織成立於1988年,由一些在電腦領域提供軟硬體系統或者相關解決方案的原廠商組
成,會員從成立之初的8家公司發展到目前的50餘家,IBM、NCR、HP、Oracle、Microsoft等國際著名公司均是其會員。總部設在美國,
並對全世界開放,但迄今為止,TPC組織絕大多數會員都是美、日、西歐的電腦軟硬體大公司.
作為一家非盈利性機構,交易處理效能委員會(TPC)負責定義諸如TPC-C、TPC-H和TPC-W基準測試之類的交易處理與資料庫效能基準
測試,並依據這些基準測試專案發布客觀效能資料。TPC基準測試採用極為嚴格的運行環境,並且必須在獨立審計機構監督下進行。委員會
成員包括大多數主要資料庫產品廠商以及伺服器硬體系統供應商。
TPC不給出基準程式的代碼,而只給出基準程式的標準規範(Standard Specification)。
注意,這裡我們提出在Benchmark測試中最重要的一個內容:標準規範.
你可能聽到很多人這樣對你說,TPC-C值不具有任何實際意義,任何測試都無法類比真實生產環境中的負荷情況。
這總說法自然有其道理,但是未免片面了,或者說這種說法實際上曲解了TPC-C等標準測試的本意.
我們說Benchmark測試中最重要的是標準規範,也就是說,其實工具等因素是不重要的,只要大家都是用同一標準規範、同一工具進行系統
測試, 那麼測試結果也就具有了比較意義.
從這個意義出發,benchmark測試實際上就成了各個廠商展示其技術實力的舞台.任何廠家或其它測試者都可以根據TPC組織公布的規範標準,
最優地構造出自己的系統,使用最優的平台和最高效的應用程式. 所以你可能聽Oracle這樣攻擊過DB2,Oracle說:IBM進行的TPC測試使用的
都是Oracle資料庫,而不是他們自己的DB2. 其實這個說法也是片面的,TPC-C測試的是OLTP的效能,而我們知道DB2在資料倉儲方面才是真正
強大的.
為了保證測試結果的客觀性,被測試者(通常是廠家)必須提交給TPC一套完整的報告(FullDisclosure Report),包括被測系統的詳細配置、分
類價格和包含五年維護費用在內的總價格.該報告必須由TPC授權的審核員核實(TPC本身並不做審計). 現在全球只有幾 個審核員,全部在美國.
TPC已經推出了四套基準程式,被稱為TPC-A、TPC-B、TPC-C和TPC-D。其中A和B已經過時,不再使 用了.TPC-C是線上交易處理(OLTP)的
基準程式,TPC-D是決策支援(DecisionSupport) 的基準程式。TPC後來嘗試推出的TPC-E,TPC-S,最終被放棄。
3.TPC-C
我們重點關注的是TPC-C測試.
TPC-C是一種旨在衡量聯機交易處理(OLTP)系統效能與延展性的行業標準基準測試專案。這種基準測試專案將對包括查詢、更新及隊列式
小批量事務在內的廣泛資料庫功能進行測試。許多IT專業人員將TPC-C視為衡量“真實”OLTP系統效能的有效指標。
TPC-C基準測試針對一種類比訂單錄入與銷售環境測量每分鐘商業事務(tpmC)輸送量。特別值得一提的是,它將專門測量系統在同時執行其
它四種事務類型(如支付、訂單狀態更新、交付及證券級變更)時每分鐘所產生的新增訂單事務數量。獨立審計機構將負責對基準測試結果進行
公證,同時,TPC將出據一份全面徹底的測試報告。這份測試報告可以從TPC Web網站(http://www.tpc.org)上獲得。
tpmC定義: TPC-C的輸送量,按有效TPC-C配置期間每分鐘處理的平均交易次數測量,至少要運行12分鐘
3.1TPC-C規範概要
TPC-C是專門針對聯機交易處理系統(OLTP系統)的,一般情況下我們也把這類系統稱為業務處理系統。
TPC-C測試規範中類比了一個比較複雜並具有代表意義的OLTP應用環境:
假設有一個大型商品批發商,它擁有若干個分布在不同地區的商品庫;每個倉庫負責為10個銷售點供貨;每個銷售點為3000個客戶提供服務;
每個客戶平均一個訂單有10項產品;所有訂單中約1%的產品在其直接所屬的倉庫中沒有存貨,需要由其他地區的倉庫來供貨。
該系統需要處理的交易為以下幾種:
New-Order:客戶輸入一筆新的訂貨交易;
Payment:更新客戶賬戶餘額以反映其支付狀況;
Delivery:發貨(類比批處理交易);
Order-Status:查詢客戶最近交易的狀態;
Stock-Level:查詢倉庫庫存狀況,以便能夠及時補貨。
對於前四種類型的交易,要求回應時間在5秒以內;對於庫存狀況查詢交易,要求回應時間在20秒以內。
邏輯結構圖:
流程圖:
3.2.評測指標
TPC-C測試規範經過兩年的研製,於1992年7月發布。幾乎所有在OLTP市場提供軟硬體平台的廠商都發布了相應的TPC-C測試結果,隨著計算
機技術的不斷髮展,這些測試結果也在不斷重新整理。
TPC-C的測試結果主要有兩個指標:
● 流量指標(Throughput,簡稱tpmC)
按照TPC的定義,流量指標描述了系統在執行Payment、Order-status、Delivery、Stock-Level這四種交易的同時,每分鐘可以處理多少個
New-Order交易。所有交易的回應時間必須滿足TPC-C測試規範的要求。
流量指標值越大越好!
● 性價比(Price/Performance,簡稱Price/tpmC)
即測試系統價格(指在美國的報價)與流量指標的比值。
性價比越小越好!
關於這部分內容,在TPC-C的官方文檔中可以找到詳細的說明,你可以在以下連結獲得TPC組織的官方文檔:
http://www.tpc.org/tpcc/spec/tpcc_current.pdf
在IBM的官方網站上,你也可以找到部分說明:
http://www-900.ibm.com/cn/products/servers/pseries/tech/tpcc.shtml
目前TPC-C的版本是5.2.
本文作者:
eygle,Oracle技術粉絲,來自中國最大的Oracle技術論壇itpub.
www.eygle.com是作者的個人網站.你可通過Guoqiang.Gai@gmail.com來聯絡作者.歡迎技術探討交流以及連結交換.
原文出處:
http://www.eygle.com/special/How.To.implement.Benchmark.Test.01.htm