本部分轉自:
版權聲明:本文為CSDN博主「Yeliang Wu」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/wylfengyujiancheng/article/details/112267080
【1】HammerDB介紹
本文性能測試使用的是 HammerDB 內置的 TPC-C 基准測試負載。
TPC-C 是一種典型的 OLTP 工作負載,其模擬了擁有多個倉庫的商品批發銷售公司為大量客戶發貨商品的場景,其中倉庫數的調整在測試中能夠體現數據庫所能夠支持的數據規模能力。
【1.1】hammerDb下載
HammerDB 下載地址:https://www.hammerdb.com/download.html
HammerDB 使用手冊:https://www.hammerdb.com/document.html
HammerDB 內置 TPC-C 測試負載介紹
【1.2】TPCC 基准參數
Number of Warehouses = 100:設置倉庫個數為100,將生成測試數據庫大小約55GB。
Minutes of Rampup Time = 2:設置測試前預熱時間為2分鍾。
Minutes Test Duration = 5:設置測試時間為5分鍾。
【2】測試方法
【2.1】准備 TPC-C 工作負載
1、Number of Warehouses:倉庫個數,將影響生成測試庫的大小。
2、Virtual Users to Build Schema:生成負載數據時的並發連接數(不能超過倉庫個數),大小將影響負載數據生成效率,建議與生成負載設備 CPU 核心數保持一致。
在用Hammer DB 測試TPCC 之前,需要先用Hammer DB 往數據庫里加載測試數據。 數據單位是warehouse。
1000個warehouse需要80G的空間。 默認配置下,最大支持5000個warehouse,即需要500G的空間。
Hammer DB 在加載完數據之后,會創建索引,收集統計信息,默認的腳本沒有使用並行,所以這2步比較慢。
如果CPU 比較強勁,那么加載5000個warehouse 需要6個小時。
Build Schema: 加載warehouse的用戶數,這里越多越好,也要和CPU 數匹配,一般是CPU數量的1 -1.5倍。
【2.2】設置測試腳本
1、Total Transactions per User:每個用戶的總事務數。建議設置較高的值保證在壓測時,User 不會因為事務運行完而退出。
2、Minutes of Rampup Time:壓測預熱時間。
3、Minutes for Test Duration:壓測運行時間。
【2.3】設置自動化測試腳本
1、Minutes per Test in Virtual User Sequence:自動化測試的間隔時間,在這個時間內程序要完成創建虛擬用戶、預熱、運行測試、停止測試等工作。設置時間需比 Minutes of Rampup Time + Minutes for Test Duration 長。
2、Active Virtual User Sequence (Space Separated):自動化測試每一次迭代產生的虛擬用戶數,虛擬用戶數可以理解為並發連接數。
3、在左側選擇【Autopilot】>【Autopilot】開始測試。
4、測試結果輸出在 hammerdb.log 文件中。
【最佳實踐案例】
該部分轉自:https://blog.csdn.net/qq_42979842/article/details/108966733
一、測試工具
HammerDB是一個開源的數據庫負載測試和基准工具,有Linux和Windows版本,可以測試運行在任意系統上的數據庫系統。HammerDB具有自動化的,多線程和動態腳本可擴展特點。HammerDB目前支持的數據庫種類很多,主流的數據庫都已經覆蓋,例如Oracle、SQL Server、DB2、TimesTen、MySQL、MariaDB、PostgreSQL、Greenplum、Postgres Plus Advanced Server、Redis 和 Trafodion SQL on Hadoop。HammerDB包含一個內嵌的基於TPC-C工業標准基線工作負載。
二、測試環境
OS 名稱 | Windows Server 2012 R2 Standard |
---|---|
OS版本 | 6.3.9600 |
BIOS | 1.10.2-3.el7_4.1 |
數據庫版本 | SQL Server 2017 |
系統類型 | 64位 |
CPU | 4C |
MEM | 8G |
三、安裝HammerDB
雙擊安裝文件,然后顯示語言選擇。
單擊繼續以開始安裝。
單擊下一步以確認版本
文件將被復制並且卸載已建立
單擊完成並啟動HammerDB
四、開始壓測
4.1 測試模型
表
- [dbo].[CUSTOMER]
- [dbo].[DISTRICT]:
- [dbo].[HISTORY]:
- [dbo].[ITEM]:
- [dbo].[NEW_ORDER]
- [dbo].[ORDER_LINE]
- [dbo].[ORDERS]
- [dbo].[STOCK]
- [dbo].[WAREHOUSE]
存儲過程
- [dbo].[DELIVERY]
- [dbo].[NEWORD]
- [dbo].[OSTAT]
- [dbo].[PAYMENT]
- [dbo].[SLEV]
4.2 測試指標
TPM
Transactions Per Minute,表示數據庫每分鍾執行的事務數量。
4.3 測試步驟
創建壓測數據庫
將數據庫添加到可用性組
點擊options菜單->Benchmark子菜單,勾選“SQL Server”、“TPC-C"兩個選項。
雙擊“schema Build”下的Options進行Sqlserver連接以及數據倉庫配置。
配置SQL Server數據庫訪問內網IP、Port、用戶名和密碼、數據庫名。
如下圖:
1、Number of Warehouses:倉庫個數,將影響生成測試庫的大小。
2、Virtual Users to Build Schema:生成負載數據時的並發連接數(不能超過倉庫個數),大小將影響負載數據生成效率,建議與生成負載設備 CPU 核心數保持一致。
在用Hammer DB 測試TPCC 之前,需要先用Hammer DB 往數據庫里加載測試數據。 數據單位是warehouse。
1000個warehouse需要80G的空間。 默認配置下,最大支持5000個warehouse,即需要500G的空間。
Hammer DB 在加載完數據之后,會創建索引,收集統計信息,默認的腳本沒有使用並行,所以這2步比較慢。
如果CPU 比較強勁,那么加載5000個warehouse 需要6個小時。
Build Schema: 加載warehouse的用戶數,這里越多越好,也要和CPU 數匹配,一般是CPU數量的1 -1.5倍。
其中Warehouses數量設置為10個,虛擬用戶數量設置為9個。
設置完成后點擊OK,回到左側導航欄,雙擊Build進行數據導入,需要等待幾分鍾,直到用戶列表里的complete均顯示已完成,單擊紅色方框停止執行,如下圖所示。
都好了之后,點這個:
下一步,配置Driver script
在左側導航欄中選擇Driver script->option,配置數據庫連接信息,確保數據庫連接信息正確。
在左側導航欄中選擇Driver script/load。
在左側導航欄中選擇Virtual User- >Options,設置Virtual User參數,Virtual Users的數量通常是根據規格配置來選,直到數據庫被壓出最高TPM,如下圖所示。
勾選“Log Output to Temp”后,會在c盤目錄下生成hammerdb.log日志文件。如:
在左側導航欄中選擇Virtual User/Create, 點擊Create。
在左側導航欄中選擇Transcations->Option,點擊OK, 如下圖所示。
在左側導航欄中選擇Transcations/Counter
在左側導航欄中選擇Virtual User->Run,雙擊Run開始運行,如下圖所示。
測試結果可以在C盤根目錄下的hammerdb.log日志查看:
五、測試結果
用戶數 | TPM |
---|---|
8 | 47433 |
16 | 48146 |
32 | 49409 |
64 | 69298 |
128 | 71171 |
192 | 64324 |
256 | 65944 |