2014年7月16日 星期三

[HammerDB][TPC-C]Database load testing and benchmarking tool for SQL Server

        HammerDB是一個open source多執行序效能測試工具,支援多種DB,如Oracle、SQL Server、PostgreSQL、MySQL等的DB,對應SQL Server的版本有SQL 2008及SQL 2012,最新的SQL 2014並沒有支援

        它本身支援TPC-C模型,TPC(Transaction Processing Performance Council)是一系列交易處理和資料庫基準測試的規範。其中TPC-C是針對OLTP的基準測試模型,模擬零售商店下訂單的交易環境,是很熱門的基準測試模型

        用HammerDB進行TPC-C測試是很簡單的,只要多試幾次就能上手喔,可參考以下說明


1.執行C:\Program Files\HammerDB-2.16\hammerdb.bat

2.滑鼠雙擊[SQL Server]



3.選[MSSQL Server]與[TPC-C],按下[OK]


4.在[SQL Server]下展開[TPC-C],展開[Schema Build],滑鼠雙擊[Options]


5.設定[SQL Server]的連線資訊,及設定[Number of Warehouses]與[Virtual Users to Build Schema],按下[OK],注意Virtual Users不得大於Warehouses喔,有防呆啦



6.滑鼠雙擊[Build]或上方那個小圖示來建立Schema,就會跳出[Create Schema]小視窗,按下[是]即可

7.開始建立相關Schema,執行時間依你建立的Warehouse數目而不同,愈多愈花時間


8.Schema建立完成會秀[TPCC SCHEMA COMPLETE],下方[Status]也會顯示綠色的勾勾,然後按下紅燈的[Destory Virtual Users],就藍色圈選處那個按鈕


這時左邊的那些子項目才可以選


Schema建立完成後,可回到SSMS介面下看到相關的Scehma,下圖就是模擬零售商店的交易環境,有客戶、新訂單、庫存、產品及歷史紀錄的資料,這是建立1個WAREHOUSE的情況


9.展開[Driver Script],滑鼠雙擊[Options],就會跳出[TPC-C Driver Otpions]視窗


注意[TPC-C Driver Script]有兩個選項,[Standard Driver Script]與[Timed Test Driver Script]可選,選哪個下面可以設定的地方也有所不同,產出的結果也會有差異,都可以試試,設定完後按下[OK]



10.展開[Virtual User],滑鼠雙擊[Options]就會跳出[Virtual User Otions]視窗,可以設定[Virtual Users]數量等的設定,建議只設定[Virtual Users]與[Iterations]即可,其他用預設的,然後[Show Output]與[Log Output to Temp]記得都打勾,就會把測試結果保存到Temp目錄下喔,設定完成按下[OK]


11.然後不要忘記耍雙擊下方的[Create Virtual Users],就那兩個人頭的那個,下方就會出現Virtual User,此時就可以按上面那個綠色箭頭的[Run Virtual Users]開始測試


12.測試過程會顯示[RUNNING - TPC-C]


13.測試完成時,下方Virtual User狀態會顯示綠色勾勾


Virtual User Output會產出測試結果



14.開始測試時,隨時可以按下紅燈那個終止測試,要不就等測試完成看結果

下圖是有勾選[Log Output to Temp],測試完成後在Temp下保存的結果,注意最後一行的兩個數字TPM(the number of Microsoft SQL Server Transactions per minute)與NOPM(the number of New Orders per minute),需注意的是這邊的TPM與官方TPC-C下的tpmC是不太一樣的喔,還有一點這TPM與NOPM是只有選[Timed Test Driver Script]才會產出的結果喔

16.在12開始測試到13完成測試之間,可以開啟Transaction Counter來看tpm計數器,就下圖那個鉛筆的按鈕


稍微等一下就可以看到執行過程tpm的變化


或是開啟Activity Monitir看相關的計數器囉


        最後相關操作說明文件可參考Documentation,建議看hammerora_mssqlserver_oltp_v2.7與hammerdb_mssql_oltp_best_practice.pdf喔

        TPC-C已問世十幾年了,新一代OLTP的TPC-E也出來一陣了,模擬更複雜的交易系統,類似現下的B2B,MSDN Blogs也有提到TPC-E – Raising the Bar in OLTP Performance,各家廠商也有針對SQL 2014進行一些量測,可參考SQL Server benchmarks and performance囉,不過倒是沒看到相關的測試工具

2 則留言:

  1. 您好,很謝謝你的教學幫助我許多

    但有點小問題想請教

    我發現在跑 600 user 的時候大概花了 150 個小時

    你在跑 MSQL TPC-C 的時候花大約多久時間呢?


    謝謝

    回覆刪除
    回覆
    1. 已經沒什印象了
      不知是不是你warehouse建太多了?
      建議先從小量開始測,慢慢再加user再觀察看看

      刪除