使用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 ...
随机推荐
- 导入导出Excel文件
搭建环境 先新建web project ,然后Add Struts Capabilties: 下载导入导出Excel所需的jar包: poi-3.8-20120326.jar包 : http:// ...
- C语言中基本的数据类型
一般来说,一个C的工程中一定要做一些这方面的工作,因为你会涉及到跨平台,不同的平台会有不同的字长,所以利用预编译和typedef可以让你最有效的维护你的代码.为了用户的方便,C99标准的C语言硬件为我 ...
- ecstore-ftp设置,不能上传文件
某些主机居然不能上传,ftp改成127.0.0.1即可 ftp地址改成127.0.0.1即可...
- How to set up github to work with Visual Studio 2013
http://michaelcrump.net/setting-up-github-to-work-with-visual-studio-2013-step-by-step/ 1. Create gi ...
- js图片预加载后触发操作
为了使得图片加载完,再触发回调函数,需进行图片预加载处理 function loadImage(url, callback) { var img = new Image(); img.src = ur ...
- C#实现根据日期计算星期
/// <summary> /// 根据日期返回 星期(返回结果为英文) /// </summary> /// <param name="date"& ...
- 黄聪:VS2017调试时提示“运行时无法计算表达式的值”
具体操作: 工具-选项-调试-常规,选中“使用托管兼容模式”,问题解决
- ALGO-147_蓝桥杯_算法训练_4-3水仙花数
问题描述 打印所有100至999之间的水仙花数.所谓水仙花数是指满足其各位数字立方和为该数字本身的整数,例如 =^+^+^. 样例输入 一个满足题目要求的输入范例. 例: 无 样例输出 xxx xxx ...
- uoj#209. 【UER #6】票数统计
http://uoj.ac/problem/209 当x!=y时,这个限制条件是确定的,可以枚举总通过数,用组合数计算,当x==y时,这个限制条件表示前x个全部通过或后x个全部通过,只有最大的x有用, ...
- mysql默认8小时连接断开机制解决
转载连接:http://www.myexception.cn/database/1639209.html 本文提供了对c3p0与DBCP连接池连接MySql数据库时, 8小时内无请求自动断开连接的解决 ...