天天看點

tpcc-mysql 實踐

tpc:

全稱<code>transaction processing performance council</code> (事務處理性能委員會),是一家非盈利性組織,該組織制定各種商業應用的基準測試規範,任意廠商和個人,都可以按照其規範來開發自己的應用程式。

tpc-c:

是由 tpc 推出的一套基準測試程式,主要用于聯機事務類應用的測試,最後的字母 c 是序号,因為在他之前有 tpc-a 和 tpc-b。使用的比較多的是 tpc-c,因為 tpcc 是套基準。

tpc-c 是專門針對聯機交易處理系統(oltp 系統)的規範,一般情況下我們也把這類系統稱為業務處理系統

tpc-c 使用三種性能和價格度量,其中性能由 tpmc(transactions per minute,tpm)衡量,cpm)衡量,c 指 tpc 中的 c 基準程式。它的定義是每分鐘内系統處理的新訂單個數。tpc-c 還經常以系統性能價格比的方式展現,機關是$/tpmc,即以系統的總價格(機關是美元)/tpmc 數值得出

tpcc-mysql:

由 percona 基于 tpcc 規範開發的一套 mysql 基準測試程式。

測試名額:

tpc-c 測試的結果主要有兩個名額,即流量名額(throughput,簡稱 tpmc)。

流量名額(throughput,簡稱 tpmc):按照 tpc 組織的定義,流量名額描述了系統在執行支付操作、訂單狀态查詢、發貨和庫存狀态查詢這 4 種交易的同時,每分鐘可以處理多少個新訂單交易。所有交易的響應時間必須滿足 tpc-c 測試規範的要求,且各種交易數量所占的比例也應該滿足 tpc-c 測試規範的要求。在這種情況下,流量名額值越大說明系統的聯機事務處理能力越高。

下載下傳完成後,目前目錄下會有 tpcc-mysql 目錄

如果沒有報錯,tpcc-mysql 就安裝完成了。

安裝完成後會生成兩個可執行檔案:

<code>tpcc_load</code>:用于初始化資料。

<code>tpcc_start</code>:用于執行基準測試。

一般分為下面 4 個步驟:

建立資料和表結構

加載資料

執行測試

測試結果解讀分析

建立庫:

建立表結構:

建立索引:

表的介紹:

先看看 tpcc_load 的用法吧

參數含義:

server:資料庫 ip

db:資料庫名稱

user:使用者名

pass:密碼

warehouse:倉庫數量

執行下面的指令開始初始化資料:(倉庫數我選擇了 10 個)

初始化成功最後會輸出:

-w warehouses :倉庫數量

-c connections:并發線程數

-r warmup_time:指定預熱時間,以秒為機關,預設是 10 秒,主要目的是為了将資料加載到記憶體。

-l running_time:指定測試執行的時間,以秒為機關,預設是 20 秒。

-i report_interval:指定生成報告的間隔時間。

-f report_file:将測試中各項操作的記錄輸出到指定檔案内儲存。

-t trx_file:輸出更詳細的操作資訊到指定檔案内儲存。

執行下面的指令:

真實測試場景中,建議預熱時間不小于 5 分鐘,持續壓測時長不小于 30 分鐘,否則測試資料可能不具參考意義。

輸出結果如下:

tpcc-mysql 實踐
tpcc-mysql 實踐

output

 第一部分:

這類資訊,每 10 秒産生一條輸出,傳回結果以逗号分隔後,共可以分為 6 列,

第一項:每 10 秒為一個區間進行輸出。後面 5 項分屬不同的業務操作,輸出資訊格式都一樣。每一項都有 4 個屬性值,即該時間區間内成功執行的事務、出現延遲的事務、90%事務的響應時間、事務的最大響應時間。

例如第一條的解釋:

在第一個 10 秒區間内:

建立訂單:共操作 918 次,失敗 0 次,90%的事務平均操作時間 0.846 秒,最大操作時間是 1.053 秒。

訂單支付:同上

查詢訂單:同上

發貨:同上

查詢庫存:同上

第二部分:

 第三部分:

tpcc 測試要求下面狀态必須為 ok

第四部分:

tpm 是 <code>transactions per minute</code>的縮寫,c 指的是執行 tpc-c 基準測試。

tpmc 這項名額為整體性能名額,表示每分鐘事務數,代表了本系統每分鐘能夠處理的訂單數量。

該值是第一次統計結果中的新訂單事務數除以總耗時分鐘數,例如本例中是 26028/5 = 5205.6

(圖形展示,嘗試了好久失敗了,果然爛尾)

參考連結:http://www.unixfbi.com/380.html#3

個性簽名:時間會解決一切