mysql hammerdb,[料理佳餚] 用 HammerDB 來執行資料庫 TPC-C 效能量測
TPC-C 模擬的情境
TPC-C 模擬的情境是一個(gè)大型的商品批發(fā)商,擁有若干個(gè)倉(cāng)庫(kù),每個(gè)倉(cāng)庫(kù)擁有 100000 件商品庫(kù)存、負(fù)責(zé)為 10 個(gè)地區(qū)供貨,每個(gè)地區(qū)服務(wù) 3000 名客戶,每名客戶平均一筆訂單有 10 項(xiàng)商品,所有訂單中約 1% 在其直屬的倉(cāng)庫(kù)中沒有貨,需要從其他倉(cāng)庫(kù)來(lái)調(diào)貨。
在模擬的情境之中,TPC-C 會(huì)測(cè)試 5 種典型的 OLTP 交易:
New-Order:User 新增一筆訂單
Payment:User 支付貨款,更新 User 的帳戶餘額。
Order-Status:User 查詢訂單最新的狀態(tài)
Delivery:出貨
Stock-Level:查詢庫(kù)存
安裝及開啟 HammerDB
HammerDB 我們可以在這裡下載到,選擇欲安裝的版本下載安裝之後,我們切換到安裝目錄底下 。
雙擊 hammerdb.bat 就可以開啟 HammerDB
確認(rèn) C:\Temp 資料夾存在
執(zhí)行負(fù)載測(cè)試的過程中需要產(chǎn)生 Output Log,HammerDB 預(yù)設(shè)儲(chǔ)存 Output Log 的目錄就是 C:\Temp,如果 C:\Temp 不存在則會(huì)放在 C:\ 底下,但是這就麻煩了,因?yàn)橐?C:\ 建立檔案是需要給予系統(tǒng)管理員權(quán)限,所以我們還是確保 C:\Temp 存在比較容易一點(diǎn)。
選擇 SQL Server Benchmark
雙擊 SQL Server 節(jié)點(diǎn)
選擇 MSSQL Server、TPC-C。
Schema Build - 建立資料庫(kù)
雙擊 Schema Build/Options
輸入 Build Options
畫面上特別要關(guān)注三個(gè)參數(shù):
SQL Server Database,資料庫(kù)存不存在無(wú)所謂,不存在會(huì)自動(dòng)建,但是必須是空的。
Number of Warehouses,官方的 SQL Server Quick Start 建議我們可以先設(shè) 10 個(gè)倉(cāng)庫(kù),我乖乖聽話設(shè)為 10 個(gè)後,它 build 好久,所以我們先設(shè) 3 個(gè)倉(cāng)庫(kù)就好了。
Virtual Users to Build Schema 可以設(shè)成與負(fù)責(zé)執(zhí)行負(fù)載測(cè)試工作的機(jī)器核心數(shù)一樣的數(shù)字,比如說(shuō),我是在我的 Notebook 執(zhí)行負(fù)載測(cè)試工作,我的 Notebook 核心數(shù)是 8,則 Virtual Users to Build Schema 可以設(shè)為 8,但是不能大於 Number of Warehouses,不過建議一開始不要設(shè)太多,會(huì)跑很久,我們先設(shè)個(gè) 2 就好了。
設(shè)定完後就雙擊 Build,畫面的右方就可以看到正在 Build Schema。
要等個(gè)好幾分鐘,完成後畫面上會(huì)出現(xiàn) TPCC SCHEMA COMPLETE 的訊息,中間區(qū)塊的 Status 也都會(huì)是綠色勾勾,接著按下紅色警示燈號(hào)按鈕停止工作。
Driver Script - 產(chǎn)生負(fù)載測(cè)試的腳本
雙擊 Driver Script/Options
輸入 Driver Options
這裡有三個(gè)參數(shù)比較特別:
TPC-C Driver Script,如果我們選擇預(yù)設(shè)值 Standard Driver Script 那 HammerDB 會(huì)把每筆 Transaction 鉅細(xì)靡遺地記錄下來(lái),訊息非常得多,我們初學(xué)是比較難去解讀這樣子的訊息,因此這邊我們選擇 Timed Test Driver Script,它會(huì)搭配下面兩個(gè)參數(shù)去產(chǎn)生測(cè)試結(jié)果。
Minutes of Rampup Time,這個(gè)時(shí)間是等待讓負(fù)載測(cè)試初始化的時(shí)間,預(yù)設(shè)值是 2 分鐘,這邊我們調(diào)整為 1 分鐘。
Minutes for Test Duration,這個(gè)時(shí)間是負(fù)載測(cè)試的取樣時(shí)間,預(yù)設(shè)值是 5 分鐘,這邊我們調(diào)整為 2 分鐘。
這三個(gè)參數(shù)值搭配起來(lái)用的意思就是說(shuō),先讓負(fù)載測(cè)試跑個(gè) 1 分鐘之後,HammerDB 會(huì)監(jiān)測(cè)接下來(lái) 2 分鐘的負(fù)載測(cè)試執(zhí)行過程,以取得到的成果去計(jì)算平均值,有點(diǎn)類似驗(yàn)?zāi)蛉≈卸蔚母拍睢?/p>
所以整個(gè)負(fù)載測(cè)試的行程會(huì)在 3 分鐘之後結(jié)束,也因?yàn)檫@樣,我們必須確保我們的負(fù)載測(cè)試會(huì)執(zhí)行超過 3 分鐘,這樣取樣的成果才會(huì)準(zhǔn)確。
設(shè)定完後,雙擊 Load 產(chǎn)生負(fù)載測(cè)試的腳本。
Virtual User - 設(shè)定虛擬使用者
雙擊 Virtual User/Options
我們就照著下面畫面設(shè)定
這裡其實(shí)我想要設(shè)定的 Virtual Users 個(gè)數(shù)其實(shí)是 2,那為何設(shè)定值是 3 呢?那是因?yàn)槲覀冞x擇 Timed Test Driver Script 之後,會(huì)需要多一個(gè) Virtual User 來(lái)監(jiān)測(cè)負(fù)載測(cè)試的過程,所以設(shè)定值會(huì)是 N+1。
最後雙擊 Run 就會(huì)開始執(zhí)行負(fù)載測(cè)試,畫面的右方會(huì)顯示執(zhí)行進(jìn)度。
查看負(fù)載測(cè)試結(jié)果
我們到 C:\Temp 底下,找到 hammerdb*.log 的檔案,打開來(lái)看它會(huì)長(zhǎng)得像下面這個(gè)樣子。
上面這個(gè) TEST RESULT 是在說(shuō)「系統(tǒng)完成 13890 NOPM(New Orders Per Minute)的同時(shí), SQL Server TPM 達(dá)到了 63568 個(gè)。」,TPM 這個(gè)數(shù)據(jù)跟 tpmC 是不一樣的,它無(wú)法拿來(lái)當(dāng)做不同資料庫(kù)之間的效能比較依據(jù),但是 NOPM 可以,因此我們應(yīng)該關(guān)注的是 NOPM 這個(gè)數(shù)據(jù)。
HammerDB 不只有可以對(duì) SQL Server 做效能測(cè)量,還可以對(duì)?MySQL、Oracle、PostgreSQL、Redis...etc,如果手邊沒有比較好的資料庫(kù)效能量測(cè)工具的朋友,Open Source 的 HammerDB 可以考慮一下。
參考資源
總結(jié)
以上是生活随笔為你收集整理的mysql hammerdb,[料理佳餚] 用 HammerDB 來執行資料庫 TPC-C 效能量測的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2018.9.19.Matlab实验四:
- 下一篇: linux cmake编译源码,linu