mysql hammerdb,[料理佳餚] 用 HammerDB 來執行資料庫 TPC-C 效能量測

TPC-C 模擬的情境

TPC-C 模擬的情境是一個大型的商品批發商,擁有若干個倉庫,每個倉庫擁有 100000 件商品庫存、負責為 10 個地區供貨,每個地區服務 3000 名客戶,每名客戶平均一筆訂單有 10 項商品,所有訂單中約 1% 在其直屬的倉庫中沒有貨,需要從其他倉庫來調貨。

在模擬的情境之中,TPC-C 會測試 5 種典型的 OLTP 交易:

New-Order:User 新增一筆訂單

Payment:User 支付貨款,更新 User 的帳戶餘額。

Order-Status:User 查詢訂單最新的狀態

Delivery:出貨

Stock-Level:查詢庫存

安裝及開啟 HammerDB

HammerDB 我們可以在這裡下載到,選擇欲安裝的版本下載安裝之後,我們切換到安裝目錄底下 。

216b4e59e6a486f9a74165fa485d12b6.png

雙擊 hammerdb.bat 就可以開啟 HammerDB

hwL3hjz.png

確認 C:\Temp 資料夾存在

執行負載測試的過程中需要產生 Output Log,HammerDB 預設儲存 Output Log 的目錄就是 C:\Temp,如果 C:\Temp 不存在則會放在 C:\ 底下,但是這就麻煩了,因為要在 C:\ 建立檔案是需要給予系統管理員權限,所以我們還是確保 C:\Temp 存在比較容易一點。

選擇 SQL Server Benchmark

雙擊 SQL Server 節點

kfyW5fF.png

選擇 MSSQL Server、TPC-C。

onvKvT0.png

Schema Build - 建立資料庫

雙擊 Schema Build/Options

8f712a0facdeb961839bfd91f1051f9c.png

輸入 Build Options

09xJFSX.png

畫面上特別要關注三個參數:

SQL Server Database,資料庫存不存在無所謂,不存在會自動建,但是必須是空的。

Number of Warehouses,官方的 SQL Server Quick Start 建議我們可以先設 10 個倉庫,我乖乖聽話設為 10 個後,它 build 好久,所以我們先設 3 個倉庫就好了。

Virtual Users to Build Schema 可以設成與負責執行負載測試工作的機器核心數一樣的數字,比如說,我是在我的 Notebook 執行負載測試工作,我的 Notebook 核心數是 8,則 Virtual Users to Build Schema 可以設為 8,但是不能大於 Number of Warehouses,不過建議一開始不要設太多,會跑很久,我們先設個 2 就好了。

設定完後就雙擊 Build,畫面的右方就可以看到正在 Build Schema。

012d8c9ea1f66cbf0b91d70d3c0dab13.png

要等個好幾分鐘,完成後畫面上會出現 TPCC SCHEMA COMPLETE 的訊息,中間區塊的 Status 也都會是綠色勾勾,接著按下紅色警示燈號按鈕停止工作。

0416638a4d74675a6a7cf87263f87232.png

Driver Script - 產生負載測試的腳本

雙擊 Driver Script/Options

KKO0DaC.png

輸入 Driver Options

a7423266afb73f042707ad545e3d9c70.png

這裡有三個參數比較特別:

TPC-C Driver Script,如果我們選擇預設值 Standard Driver Script 那 HammerDB 會把每筆 Transaction 鉅細靡遺地記錄下來,訊息非常得多,我們初學是比較難去解讀這樣子的訊息,因此這邊我們選擇 Timed Test Driver Script,它會搭配下面兩個參數去產生測試結果。

Minutes of Rampup Time,這個時間是等待讓負載測試初始化的時間,預設值是 2 分鐘,這邊我們調整為 1 分鐘。

Minutes for Test Duration,這個時間是負載測試的取樣時間,預設值是 5 分鐘,這邊我們調整為 2 分鐘。

這三個參數值搭配起來用的意思就是說,先讓負載測試跑個 1 分鐘之後,HammerDB 會監測接下來 2 分鐘的負載測試執行過程,以取得到的成果去計算平均值,有點類似驗尿取中段的概念。

所以整個負載測試的行程會在 3 分鐘之後結束,也因為這樣,我們必須確保我們的負載測試會執行超過 3 分鐘,這樣取樣的成果才會準確。

設定完後,雙擊 Load 產生負載測試的腳本。

9ywBGB0.png

Virtual User - 設定虛擬使用者

雙擊 Virtual User/Options

pNz75Nq.png

我們就照著下面畫面設定

Ed1kMll.png

這裡其實我想要設定的 Virtual Users 個數其實是 2,那為何設定值是 3 呢?那是因為我們選擇 Timed Test Driver Script 之後,會需要多一個 Virtual User 來監測負載測試的過程,所以設定值會是 N+1。

最後雙擊 Run 就會開始執行負載測試,畫面的右方會顯示執行進度。

6R2Xa6N.png

查看負載測試結果

我們到 C:\Temp 底下,找到 hammerdb*.log 的檔案,打開來看它會長得像下面這個樣子。

e1efa427e7909292611e7ba32c6446d0.png

上面這個 TEST RESULT 是在說「系統完成 13890 NOPM(New Orders Per Minute)的同時, SQL Server TPM 達到了 63568 個。」,TPM 這個數據跟 tpmC 是不一樣的,它無法拿來當做不同資料庫之間的效能比較依據,但是 NOPM 可以,因此我們應該關注的是 NOPM 這個數據。

HammerDB 不只有可以對 SQL Server 做效能測量,還可以對 MySQL、Oracle、PostgreSQL、Redis...etc,如果手邊沒有比較好的資料庫效能量測工具的朋友,Open Source 的 HammerDB 可以考慮一下。

參考資源

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/560450.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

axure 鼠标变成手,Axure教程|鼠标移入移出自动显示与隐藏三级菜单

前几天因工作需要做一个鼠标移入显示隐藏菜单,鼠标移出自动隐藏菜单,做的时候觉得没有什么问题,做完后预览就发现一个很严重的问题,就是鼠标移出一级菜单向二级菜单时二级菜单不显示,或者二级菜单显示三级菜单不显示。…

php websocket应用实例,php使用websocket示例详解

下面我画了一个图演示 client 和 server 之间建立 websocket 连接时握手部分,这个部分在 node 中可以十分轻松的完成,因为 node 提供的 net 模块已经对 socket 套接字做了封装处理,开发者使用的时候只需要考虑数据的交互而不用处理连接的建立…

java basic data type,java基本数据类型--Basic Datatypes

Variables are nothing but reserved memory locations to store values. This means that when you create a variable you reserve some space in the memory.---说的好有道理Based on the data type of a variable, the operating system allocates memory and decides what…

adminer.php下载,Adminer.php

Adminer.php就是原来的phpMinAdmin,这是用PHP编写的数据库管理工具,支持mysql、mariadb、postgresql、sqlite、MS SQL、Oracle等多种数据库,虽然是一个源码,但是可以使用用户们和密码直接连接到数据库的服务器,既可以对…

windows下如何在命令行里切换到任意目录

切换到C盘中的某个文件夹,比如AppData,可以执行命令cd AppData; 但如果想切换到D盘,输入cd d:是不行的; 如果我们要切换盘符的目录,正确的用法是在cd 和路径中间 增加一个“/d”,如cd /d d: 也可以不用cd指令&#x…

Java基础 系统注解 @Override @Deprecated @SuppressWarnings 使用的方法及原因

Java 系统注解 为什么用?: 好处:使用系统定义的注解,可以在编译时对程序进行检查。 注解用在包、类、字段、方法、局部变量、方法参数等的前面,对这些元素进行说明和注释。 Override Override用来修饰一个方法&am…

单片机实验:交通灯控制

实验要求 按照电路要求在Protues中设计电路图,或者使用开发板。编程实现如下功能: 用单片机端口作输出口,控制四个方向共12个发光二极管亮灭,模拟交通灯管理。功能描述如下:初始态为四个路口的红灯全亮之后&#xff0…

单片机实验:节日彩灯控制器

任务 设计8路节日彩灯控制器,要求在Protues中设计接口电路图,并编程实现节日彩灯闪烁方式的控制: 通过P1.0到P1.2来控制3个按键。3个按键分别对应3种彩灯闪烁方式。彩灯闪烁方式分别为:从上往下的循环、从下往上以及从中间向两边…

单片机实验:数据区传送程序

任务 将单片机片内存储器存储区首地址设置为60H、片外存储器存储区首地址设置为4000H,存入片内存储区内容为04H-14H共17个字节 ,读取片内首地址为60H单元内容,将该内容传送到片外数据存储器存储区中保存(首地址4000H),将保存在片…

shapefile导入oracle,shp2sdo.exe用法:shpfile导入OracleSpatial

在使用OracleSpatial时,不免需要将shpfile导入,本人使用shp2sdo.exe和oracle内置工具(sqlplus和sqlldr)来完成,使用熟了还比较方便,主要是手动操作四步,本人是在windows中进行的,导入cities.shp。1. 转换数据格式首先使用shp2sdo.…

信号与系统实验:信号抽样

已知一个连续时间信号f(t)sinc⁡(t)f(t)sinc⁡(t)f(t)sinc⁡(t),取最高有限带宽频率fm1Hzf_m1Hzfm​1Hz (1)分别显示原连续信号波形和 fsfm、fs2fm、fs3fmf_sf_m、f_s2f_m、f_s3f_mfs​fm​、fs​2fm​、fs​3fm​三种情况下抽样信号的波形。…

php 的html文件怎么打开,什么是html文件?html格式如何打开?(图)

打开html的软件有:1、记事本;2、Adobe Dreamweaver软件;3、sublime text软件;4、notepad软件;5、vscode软件等等。有时我们会遇到html格式的文件需要打开,那么什么是html格式?该怎么打开html格式…

信号与系统实验:用Matlab表示常用连续时间信号

(1)单位阶跃信号u(t)u(t)u(t) function yheaviside(t) y(t>0);单位阶跃信号的MATLAB源程序如下: t-10:0.001:10; yheaviside(t); plot(t,y,r);(2)单位冲激信号δ(t)δ(t)δ(t) 单位冲激信号的MATLAB源程序如下: x-100:0.1:100; ydirac(x); %狄拉克…

信号与系统实验:Matlab求连续时间信号的傅里叶变换

1.用Matlab符号运算求解法求单边指数信号f(t)e−2tu(t)f(t)e^{-2t}u(t)f(t)e−2tu(t)的FT MATLAB源程序为: ftsym(exp(-2*t)*heaviside(t)); fwfourier(ft)运行结果为: fw 1/(2 w*1i)2.用Matlab符号运算求解法求F(jw)11w2F(jw)\frac{1}{1w^2}F(jw)1…

数据结构实验:一元多项式计算器

一、实验内容及要求 1.任务描述: 实验内容: 设有一元多项式Am(x)和Bn(X),编程实现多项式Am(x)和Bn(x)的加法、减法和乘法运算。其中多项式描述为: Am(x)A0A1x1A2x2A3x3….Amxm; Bn(x)B0B1x1B2x2B3x3….Bnxn。 输入和…

数据结构实验:城市交通咨询模拟系统

一、 实验目的 1.目的:掌握图的存储、构建、搜索等操作和应用,能用最短路径及其搜索等算法编制较综合性的程序,求解最优路线问题,进行程序设计、数据结构和算法设计等方面的综合训练。 2.任务:…

传感器信号处理仿真实验(c语言实现),均值滤波,滑动滤波

文章目录总结test1、动态显示一段正弦波信号的曲线:test2、现提供随机信号函数,随意设定两路不同幅度的随机信号,动态显示出来。test3、用均值法将原始的传感器信号进行滤波处理test4、用滑动滤波法将原始的传感器信号进行滤波处理总结 1.为…

python和php合成,Python照片合成的方法详解

【相关学习推荐:python教程】文章目录前言Github效果实现过程整体代码前言看电影的时候发现一个照片墙的功能,觉得这样生成照片挺好玩的,于是就动手用Python做了一下,觉得用来作照片纪念的效果可能会不错。P:后面了解到我想做的功…

linux系统运行pbs出现ntf,Linux系统启动故障修复

Linux在启动过程中会出现一些故障,导致系统无法正常启动,本文列举了几个应用单用户模式、GRUB命令操作、Linux救援模式的典型故障修复案例。一、单用户模式Linux提供了单用户模式(类似Windows安全模式),可以在最小环境中进行系统维护。在单用…

在安卓手机上下载linux系统,如何在安卓手机上运行Ubuntu系统

Ubuntu是一款linux系统,一般我们都是将其运行在电脑中,可不可以在手机端也能运行Ubuntu呢?也是可以的,想知道如何实现的,就跟我来吧。第一步:首先, 你的手机需要获取root权限. 如果不知道如何获取, 可以到搜索一下安卓…