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进行性能测试的更多相关文章

  1. 使用sysbench 对mysql进行性能测试

    使用sysbench 对mysql进行性能测试 sysbench是一个开源的.模块化的.跨平台的多线程性能测试工具,可以用来进行CPU.内存.磁盘I/O.线程.数据库的性能测试.目前支持的数据库有My ...

  2. Mybatis与JDBC批量插入MySQL数据库性能测试及解决方案

    转自http://www.cnblogs.com/fnz0/p/5713102.html 不知道自己什么时候才有这种钻研精神- -. 1      背景 系统中需要批量生成单据数据到数据库表,所以采用 ...

  3. Mysql多线程性能测试工具sysbench 安装、使用和测试

    From:http://www.cnblogs.com/zhoujinyi/archive/2013/04/19/3029134.html 摘要:      sysbench是一个开源的.模块化的.跨 ...

  4. Jmeter MySQL数据库性能测试

    1.首先准备M一SQL数据,新建一个数据库及测试用的表,插入1条数据 2.打开Jmeter,新建线程组,设置多少用户,循环几次随意 3.在线程组下新增JDBC配置元件,通过配置使得Jmeter能够连上 ...

  5. 【转】Jmeter MySQL数据库性能测试

    1.首先准备M一SQL数据,新建一个数据库及测试用的表,插入1条数据 2.打开Jmeter,新建线程组,设置多少用户,循环几次随意 3.在线程组下新增JDBC配置元件,通过配置使得Jmeter能够连上 ...

  6. mysql 重点性能测试指标

    #qps 每秒钟查询数量 计算方式queries/seconds 查询总数/秒数show GLOBAL STATUS LIKE 'question%' #tps 每秒事务数 计算方式 (com_com ...

  7. MYSQL LIMIT 性能测试

    查询语句 # 普通表 SELECT * FROM test_page LIMIT m,n # 内存表 SELECT * FROM test_page_memory LIMIT m,n 总结 查询位置( ...

  8. MySQL 常用工具sysbench/fio/tpcc等测试

    为什么要压力测试采购新设备,评估新设备性能开发新项目,评估数据库容量新系统上线前,预估/模拟数据库负载更换数据库版本,评估性能变化 关注指标  CPU %wait,%user,%sys 内存 只内存读 ...

  9. 最详细的CentOS 6与7对比(三):性能测试对比

    本主题将从3个角度进行对比 常见设置(CentOS 6 vs CentOS 7) 服务管理(Sysvinit vs Upstart vs Systemd) 性能测试(cpu/mem/io/oltp) ...

  10. CentOS 6.5 RPM包方式安装 Mysql 5.6

    1. 下载MySQL 5.6 下载页面:http://dev.mysql.com/downloads/mysql/此处选择“Red Hat Enterprise Linux 6 / Oracle Li ...

随机推荐

  1. HADOOP1.X中HDFS工作原理

    转载自:http://www.daniubiji.cn/archives/596 HDFS(Hadoop Distributed File System )Hadoop分布式文件系统.是根据googl ...

  2. Spring Cloud(Dalston.SR5)--Ribbon 中间层负载均衡

    Spring Cloud 集成了 Ribbon 并结合 Eureka 可以实现客户端的负载均衡,使用 @LoadBalanced 修饰的 RestTemplate 类拥有了负载均衡功能,在 Sprin ...

  3. Spring Http Invoker使用简介

    一.Spring HTTP Invoker简介 Spring HTTP invoker 是 spring 框架中的一个远程调用模型,执行基于 HTTP 的远程调用(意味着可以通过防火墙),并使用 ja ...

  4. Tomcat里面的APR配置问题研究

    这里,之所以研究这个问题,是因为我们的生产系统Linux环境下的tomcat日志里面,启动信息的地方有这么一个WARNING. INFO: The APR based Apache Tomcat Na ...

  5. javaweb下载中的一个问题

    如果你发现,response头以及contentType都已经设置没错,但出现浏览器将下载的文件内容显示到新窗口 那么解决方案就是在请求的时候不要产生新的窗口

  6. codeblocks “can't find compiler executable in yourconfigured search ……”

    新安装的codeblocks 16.01,安装后打开提示如下,没法用..原因是编译器并没有找对自己安装的 mingw 的安装位置. 解决办法:如下图点击 Auto-detect 之后,会看到位置信息变 ...

  7. <亲测>ubuntu 16.04 忘记root密码

    ubuntu 16.04 忘记root密码   阅读目录 方法一 方法二 虚拟机中安装的ubuntu 16.04. 回到目录 方法一 如果用户具有sudo权限,那么直接可以运行如下命令: sudo s ...

  8. 胖子哥的大数据之路(7)- 传统企业切入核心or外围

    一.引言 昨天和一个做互联网大数据(零售行业)的朋友交流,关于大数据传统企业实施的切入点产生了争执,主要围绕两个问题进行了深入的探讨: 问题1:对于一个传统企业而言什么是核心业务,什么是外围业务? 问 ...

  9. 【linux】之内核升级

    安装docker要满足一定的条件,对于cents系统,要求必须是64位,并且内核版本是3.10以上. 如果你的centos操作系统内核低于3.10,需要升级到这个版本以上,才能安装docker. 第一 ...

  10. 我的ehcache笔记

    我的EhcacheUtils类: package com.shinho.bi.utils; import org.ehcache.CacheManager; import org.ehcache.co ...