使用tpcc-mysql进行性能测试
tpcc-mysql的github地址:https://github.com/Percona-Lab/tpcc-mysql
tpcc-mysql源代码进行编译,服务器上需要安装有mysql
git clone https://github.com/Percona-Lab/tpcc-mysql.git
cd tpcc-mysql/src
make
可能会遇到如下错误:

需要安装以下组件
yum install mysql-devel
yum install gcc
make成功后,会在tpcc-mysql下生成两个命令行工具

创建库
# 本地
mysqladmin -uroot -proot create tpcc1000 # 远程
mysqladmin -h192.168.0.1 -P3306 -uroot -proot create tpcc1000
创建表
# 本地
mysql -uroot -proot -f tpcc1000 < create_table.sql # 远程
mysql -h192.168.0.1 -P3306 -uroot -proot -f tpcc1000 < create_table.sql
创建外键
# 本地
mysql -uroot -proot -S /tmp/mysql.sock tpcc100 < add_fkey_idx.sql #远程
mysql -h192.168.0.1 -P3306 -uroot -proot -S /tmp/mysql.sock tpcc1000 < add_fkey_idx.sql
加载数据
-h 主机IP -P 端口号 -u 用户名 -p 密码 -d 数据库名 -w仓库数量
./tpcc_load -h127.0.0. -P3306 -uroot -proot -dtpcc1000 -w100
真实测试场景中,仓库数一般不建议少于 100个,视服务器硬件配置而定,如果是配备了SSD或者PCIE SSD这种高IOPS设备的话,建议最少不低于 1000个。
发起压测
-h 主机IP -P 端口号 -u 用户名 -p 密码 -d 数据库名 -w仓库数量 -c 并发数 -r 预热时间 -l 持续测试时间 -i 报告生成间隔时长 -f 生成的报告名
./tpcc_start -h 127.0.0.1 -P -d tpcc1000 -u root -p root -w -c -r -l -f tpcclog_201409211538_64_THREADS.log >> tpcc_noaid_2_20140921_64.log >&
统计结果
***************************************
*** ###easy### TPC-C Load Generator ***
***************************************
option h with value '127.0.0.1'
option P with value ''
option d with value 'tpcc1000'
option u with value 'root'
option p with value 'root'
option w with value ''
option c with value ''
option r with value ''
option l with value ''
option f with value 'tpcclog_201409211538_64_THREADS.log'
<Parameters>
[server]: 127.0.0.1
[port]:
[DBname]: tpcc1000
[user]: root
[pass]: root
[warehouse]:
[connection]:
[rampup]: (sec.)
[measure]: (sec.) RAMP-UP TIME.( sec.)
--初始化信息
MEASURING START. , trx: , %: 3408.202, %: 4244.400, max_rt: 4955.159, |7908.489, |3133.168, |6049.083, |11051.597
, trx: , %: 2954.709, %: 3978.652, max_rt: 5321.916, |7097.855, |3535.278, |5067.906, |8279.009
, trx: , %: 3216.882, %: 4579.696, max_rt: 4651.545, |5517.847, |2888.488, |5839.525, |9747.291
, trx: , %: 2806.432, %: 3772.209, max_rt: 4188.561, |5264.642, |2234.885, |5447.216, |9525.448
, trx: , %: 3708.392, %: 4455.295, max_rt: 4620.094, |6174.815, |2714.639, |6578.676, |9311.568
, trx: , %: 3455.456, %: 4072.641, max_rt: 4789.693, |7616.626, |2813.756, |5629.434, |11790.620
, trx: , %: 3360.588, %: 3785.784, max_rt: 4194.451, |6506.522, |2047.294, |7115.730, |11013.240
, trx: , %: 3394.965, %: 4038.649, max_rt: 4117.499, |7468.766, |1926.932, |7143.620, |7610.500
, trx: , %: 4621.007, %: 5785.856, max_rt: 6406.660, |4856.231, |1691.698, |6805.226, |7287.891
, trx: , %: 4424.727, %: 5655.715, max_rt: 5681.746, |9643.270, |2487.533, |7005.748, |6326.052
, trx: , %: 3222.664, %: 3983.419, max_rt: 4084.562, |6793.215, |2140.033, |6742.681, |8313.380
, trx: , %: 4088.520, %: 5306.367, max_rt: 6080.581, |7764.922, |2306.241, |9595.797, |10459.830
-- 以逗号分隔,共6列
-- 第一列,第N次10秒
-- 第二列,总成功执行压测的次数(总推迟执行压测的次数):90%事务的响应时间|本轮测试最大响应时间
-- 第三列,新订单业务成功执行次数(推迟执行次数):90%事务的响应时间|本轮测试最大响应时间
-- 第四列,支付业务的结果,后面几个的意义同上
-- 第五列,发货业务的结果,后面几个的意义同上
-- 第六列,库存业务的结果,后面几个的意义同上
STOPPING THREADS................................................................ <Raw Results>
[] sc: lt: rt: fl: avg_rt: 2172.2 ()
[] sc: lt: rt: fl: avg_rt: 2191.9 ()
[] sc: lt: rt: fl: avg_rt: 1032.8 ()
[] sc: lt: rt: fl: avg_rt: 5431.0 ()
[] sc: lt: rt: fl: avg_rt: 6932.6 ()
in sec.
-- 第0行 New-Order,新订单业务成功(success,简写sc)次数,延迟(late,简写lt)次数,重试(retry,简写rt)次数,失败(failure,简写fl)
-- 第1行 Payment,支付业务统计,其他同上
-- 第2行 Order-Status,订单状态业务统计,其他同上
-- 第3行 Delivery,发货业务统计,其他同上
-- 第4行 Stock-Level,库存业务统计,其他同上
<Raw Results2(sum ver.)>
[] sc: lt: rt: fl:
[] sc: lt: rt: fl:
[] sc: lt: rt: fl:
[] sc: lt: rt: fl:
[] sc: lt: rt: fl: <Constraint Check> (all must be [OK])
[transaction percentage]
Payment: 43.48% (>=43.0%) [OK]
Order-Status: 4.34% (>= 4.0%) [OK]
Delivery: 4.29% (>= 4.0%) [OK]
Stock-Level: 4.37% (>= 4.0%) [OK]
[response time (at least % passed)]
New-Order: 0.00% [NG] *
Payment: 0.12% [NG] *
Order-Status: 3.59% [NG] *
Delivery: 0.00% [NG] *
Stock-Level: 0.00% [NG] * <TpmC>
837.500 TpmC -- TpmC结果值
Payment -- 支付成功次数(上述统计结果中 sc + lt)必须大于43.0%,否则结果为NG,而不是OK
Order-Status -- 订单状态,其他同上
Delivery -- 发货,其他同上
Stock-Level -- 库存,其他同上
response time -- 响应耗时指标必须超过90%通过才行 下面几个响应耗时指标全部 100% 通过
使用tpcc-mysql进行性能测试的更多相关文章
- 使用sysbench 对mysql进行性能测试
使用sysbench 对mysql进行性能测试 sysbench是一个开源的.模块化的.跨平台的多线程性能测试工具,可以用来进行CPU.内存.磁盘I/O.线程.数据库的性能测试.目前支持的数据库有My ...
- Mybatis与JDBC批量插入MySQL数据库性能测试及解决方案
转自http://www.cnblogs.com/fnz0/p/5713102.html 不知道自己什么时候才有这种钻研精神- -. 1 背景 系统中需要批量生成单据数据到数据库表,所以采用 ...
- Mysql多线程性能测试工具sysbench 安装、使用和测试
From:http://www.cnblogs.com/zhoujinyi/archive/2013/04/19/3029134.html 摘要: sysbench是一个开源的.模块化的.跨 ...
- Jmeter MySQL数据库性能测试
1.首先准备M一SQL数据,新建一个数据库及测试用的表,插入1条数据 2.打开Jmeter,新建线程组,设置多少用户,循环几次随意 3.在线程组下新增JDBC配置元件,通过配置使得Jmeter能够连上 ...
- 【转】Jmeter MySQL数据库性能测试
1.首先准备M一SQL数据,新建一个数据库及测试用的表,插入1条数据 2.打开Jmeter,新建线程组,设置多少用户,循环几次随意 3.在线程组下新增JDBC配置元件,通过配置使得Jmeter能够连上 ...
- mysql 重点性能测试指标
#qps 每秒钟查询数量 计算方式queries/seconds 查询总数/秒数show GLOBAL STATUS LIKE 'question%' #tps 每秒事务数 计算方式 (com_com ...
- MYSQL LIMIT 性能测试
查询语句 # 普通表 SELECT * FROM test_page LIMIT m,n # 内存表 SELECT * FROM test_page_memory LIMIT m,n 总结 查询位置( ...
- MySQL 常用工具sysbench/fio/tpcc等测试
为什么要压力测试采购新设备,评估新设备性能开发新项目,评估数据库容量新系统上线前,预估/模拟数据库负载更换数据库版本,评估性能变化 关注指标 CPU %wait,%user,%sys 内存 只内存读 ...
- 最详细的CentOS 6与7对比(三):性能测试对比
本主题将从3个角度进行对比 常见设置(CentOS 6 vs CentOS 7) 服务管理(Sysvinit vs Upstart vs Systemd) 性能测试(cpu/mem/io/oltp) ...
- CentOS 6.5 RPM包方式安装 Mysql 5.6
1. 下载MySQL 5.6 下载页面:http://dev.mysql.com/downloads/mysql/此处选择“Red Hat Enterprise Linux 6 / Oracle Li ...
随机推荐
- centos6 只安装mysql client(安装包安装和yum安装mysql)
方法一下载安装: 1.在/home创建mysql目录,下载如下四个软件包 http://mirrors.sohu.com/mysql/MySQL-5.7/ wget http://mirrors.so ...
- ML平台_Angel参考
Angel 是腾讯开源基于参数服务器(Parameter Server)理念的机器学习框架(为支持超大维度机器学习模型运算而生).核心设计理念围绕模型,它将高维度的大模型切分到多个参数服务器节点,并通 ...
- sublime text2建成C语言(C++)编译环境
四个步骤: 下载安装Sublime text2 for windows 下载安装 MinGW 与 系统变量设置 Sublime Building System 设置 编译测试 一.下载安装Sublim ...
- VS2012打开项目——已停止工作
VS2012打开项目——已停止工作 解决方法如下: 1. 开始-->所有程序-->Microsoft Visual Studio 2012-->Visual Studio Tools ...
- 黄聪:Pjax无刷新跳转页面实现,支持超链接与表单提交
什么是pjax? 当你点击一个站内的链接的时候,不是做页面跳转,而是只是站内页面刷新.这样的用户体验,比起整个页面都闪一下来说, 好很多. 其中有一个很重要的组成部分, 这些网站的ajax刷新是支持浏 ...
- 写在vue总结之前(一)
在大概2016年6月吧,知道了vue,博客园有个博主用vue写了一个不算完整的博客园app,做出来的效果相比博客园原本的app看上去要华丽很多,那时候做前端还没多久,很多东西都不知道,别人说用vue开 ...
- console.log()换行和document.write()换行
<!DOCTYPE html><html ><head><meta charset="utf-8"><title>ddd ...
- 跨域的案例 以百度接口/手写接口为例,还有jQuery写法
仅在js部分输入即可 百度接口的案例 <script> function fn(data){ console.log(data) } </script> <script ...
- hadoop集群部署
1) 安装jdk 下载jdk-6u21-linux-i586.bin 然后修改/etc/profile: export JAVA_HOME=/usr/local/jdk export CLASSPAT ...
- Vue.js系列之项目结构说明
转:https://www.jb51.net/article/111658.htm 前言 在上一篇项目搭建文章中,我们已经下载安装了node环境以及vue-cli,并且已经成功构建了一个vue-cli ...