1.測試相關(guān)概念
(1) sysbench: sysbench是一個基于LuaJIT的可編寫腳本的多線程基準(zhǔn)測試工具坤次。它最常用于數(shù)據(jù)庫基準(zhǔn)測試,但也可用于創(chuàng)建復(fù)雜的工作負(fù)載任務(wù)食磕,集成了TPC-C標(biāo)準(zhǔn)測試。
(2)TPC-C: 是一個用于評估數(shù)據(jù)庫聯(lián)機交易處理(OLTP)能力的業(yè)界標(biāo)準(zhǔn)測試瑟慈。它包含五類主要的業(yè)務(wù)事務(wù)模型:
新訂單(New-Order):
客戶輸入一筆新的訂貨交易社痛。
支付操作(Payment)
:更新客戶賬戶余額以反映其支付狀況恩沽。
發(fā)貨(Delivery)
:發(fā)貨(模擬批處理交易)眨补。
訂單狀態(tài)查詢(Order-Status)
:查詢客戶最近交易的狀態(tài)管削。
庫存狀態(tài)查詢(Stock-Level)
:查詢倉庫庫存狀況,以便能夠及時補貨撑螺。
TPC-C通過tpmC值(Transactions per Minute)來衡量系統(tǒng)的最大有效吞吐量含思,這個指標(biāo)主要關(guān)注系統(tǒng)在執(zhí)行上述幾種交易的同時,每分鐘可以處理多少個新訂單交易实蓬。所有交易的響應(yīng)時間必須滿足TPC-C測試規(guī)范的要求茸俭,且各種交易數(shù)量所占的比例也應(yīng)該滿足TPC-C測試規(guī)范的要求。
2.測試設(shè)置
架構(gòu) |
內(nèi)存 |
核數(shù) |
x86 |
4G |
2C |
3.記錄參數(shù)
-
90th %
:測試中90%的事務(wù)響應(yīng)時間都低于這個值安皱。它是衡量數(shù)據(jù)庫響應(yīng)時間的一個指標(biāo)调鬓,用于顯示絕大多數(shù)事務(wù)的性能。
-
Maximum
:在測試期間觀察到的最長事務(wù)響應(yīng)時間酌伊。這個指標(biāo)對于理解在最糟糕情況下數(shù)據(jù)庫的性能非常重要腾窝。
-
Latency
:交易的平均響應(yīng)時間。
-
Count
:在測試期間執(zhí)行的特定類型事務(wù)的總次數(shù)居砖。
-
Percent
:一個特定事務(wù)類型占所有事務(wù)總數(shù)的百分比虹脯。
-
Rollback
:在數(shù)據(jù)庫事務(wù)處理中,如果事務(wù)無法成功完成奏候,則會執(zhí)行回滾操作循集,取消所有已進行的更改。此指標(biāo)顯示測試期間發(fā)生的回滾次數(shù)蔗草。
-
Errors
:指在測試過程中遇到的錯誤次數(shù)咒彤。這些錯誤可能是由于各種原因?qū)е碌氖聞?wù)失敗。
-
Skipped
:在TPC-C的發(fā)貨(Delivery)事務(wù)中咒精,如果某些發(fā)貨不能在指定時間內(nèi)完成镶柱,它們可能會被標(biāo)記為“跳過”的發(fā)貨。這個指標(biāo)計算了這種情況的次數(shù)模叙。
-
tpmC:TPC-C 測試中每分鐘處理的數(shù)量歇拆。
-
tpmTotal:每分鐘內(nèi)處理的事務(wù)總數(shù)。
4.測試腳本
db=dm
driver=dm.jdbc.driver.DmDriver
conn=jdbc:dm://127.0.0.1:5236
user=benchmarksql
password=Dameng123
//數(shù)據(jù)庫
warehouses=10
//初始倉庫中數(shù)據(jù)的并行數(shù)
loadWorkers=10
//壓力測試時的終端數(shù)量
terminals=1
//To run specified transactions per terminal- runMins must equal zero
runTxnsPerTerminal=0
//To run for specified minutes- runTxnsPerTerminal must equal zero
runMins=2
//Number of total transactions per minute
limitTxnsPerMin=0
//Set to true to run in 4.x compatible mode. Set to false to use the
//entire configured database evenly.
terminalWarehouseFixed=true
//The following five values must add up to 100
newOrderWeight=45
paymentWeight=43
orderStatusWeight=4
deliveryWeight=4
stockLevelWeight=4
// Directory name to create for collecting detailed result data.
// Comment this out to suppress.
resultDirectory=my_result_%tY-%tm-%td_%tH%tM%tS
osCollectorScript=./misc/os_collector_linux.py
osCollectorInterval=1
//osCollectorSSHAddr=user@dbhost
osCollectorDevices=net_ens33 blk_sda
5.測試結(jié)果示例
數(shù)據(jù)庫數(shù)量 |
初始數(shù)據(jù)庫 |
客戶端數(shù)量 |
每個終端事務(wù) |
運行時長 |
10 |
0 |
1 |
10 |
2 |
TransactionType |
90th % |
Maximum |
Count |
Percent |
Rollback |
Errors |
SkippedDeliveries |
NEW_ORDER |
0.052s |
0.491s |
805 |
46.211% |
0.870% |
0 |
N/A |
PAYMENT |
0.031s |
0.225s |
745 |
42.767% |
N/A |
0 |
N/A |
ORDER_STATUS |
0.046s |
0.492s |
70 |
4.018% |
N/A |
0 |
N/A |
STOCK_LEVEL |
1.301s |
3.915s |
60 |
3.444% |
N/A |
0 |
N/A |
DELIVERY |
0.000s |
0.002s |
62 |
3.559% |
N/A |
0 |
N/A |
DELIVERY_BG |
0.235s |
1.409s |
62 |
N/A |
N/A |
0 |
0 |
指標(biāo) |
整體 TPM 值 |
tpmC |
402.00 |
tpmTotal |
871.00 |
參考資料:
1.SUN-甲骨文系統(tǒng)硬軟件介紹服務(wù)器技術(shù)應(yīng)用太平洋電腦網(wǎng)PConline
2.tpc-c 基準(zhǔn)測試簡介以及程序的安裝范咨、使用_tpc-c控制面板-CSDN博客
3.數(shù)據(jù)庫壓測模型TPC-C/TPC-H - HunterHuang - 博客園 (cnblogs.com)