2019独角兽企业重金招聘Python工程师标准>>>

sysbench 0.5相比0.4版本的主要变化是,oltp测试结合了lua脚本,不需要修改源码,通过自定义lua脚本就可以实现不同业务类型的测试。同时0.5相比0.4需要消耗更多的cpu资源。
1、查看帮助
sysbench --help
sysbench --test=fileio help
可以查看 fileio、 cpu、 memory、 threads、 mutex的详细参数,0.4版本还可以查看oltp的参数
2、初始化测试表
创建单表,c和pad包含随机字符,k列是1到oltp-table-size的随机整数:
./sysbench  --test=tests/db/oltp.lua --oltp-table-size=1000000 --mysql-table-engine=innodb --mysql-user=sysbench  --mysql-password=sysbench --mysql-port=3306 --mysql-host=10.0.37.123 --mysql-db=test prepare
参数说明:
--oltp-table-size:指定表的大小,即表的行数
--mysql-table-engine:指定存储引擎,如myisam,innodb,heap,ndbcluster,bdb,maria,falcon,pbxt
--mysql-db:指定在哪个数据库创建测试表,默认为sbtest库,需要提前创建好
--test:指定Lua脚本,参数选项大部分同老版本的--test=oltp help
--db-driver:指定驱动,默认为Mysql
--myisam-max-rows:指定Myisam表的MAX_ROWS选项
--oltp-secondary:测试表将使用二级索引KEY xid (ID) 替代 PRIMARY KEY (ID),innodb引擎内部为每个表 创建唯一6字节的主键索引
--oltp-auto-inc:设置id列为auto-incremental,值为on或off,默认为on
创建多个表,使用--oltp-tables-count指定,默认为1:
./sysbench --test=tests/db/oltp.lua --oltp-tables-count=25 prepare
使用多线程创建多表,节省准备时间:
./sysbench  --test=tests/db/parallel_prepare.lua --oltp-tables-count=64  --num-threads=8 run
--oltp-tables-count的数量应该是--num-threads的倍数。

3、进行oltp测试
单表:
./sysbench --test=tests/db/oltp.lua --oltp-table-size=1000000 --mysql-table-engine=innodb --mysql-user=sysbench  --mysql-password=sysbench --mysql-port=3306 --mysql-host=10.0.37.123 --mysql-db=test  --max-requests=0 --max-time=600 --num-threads=512 --report-interval=10 run
如果使用--max-time(这里设置600s),需要设置--max-request为0,默认是10000(总请求数)
--num-threads:指定并发线程数,每个线程将选择一个随机的表
--oltp-dist-type:指定随机取样类型,默认为special,允许的值:uniform、gauss、special
--oltp-dist-pct:记录读取百分比
--oltp-dist-res:分配的概率
--oltp-read-only:执行仅仅SELECT测试,默认off
多表:
./sysbench --test=tests/db/oltp.lua --oltp-tables-count=25 --num-threads=5 run
创建表从sbtest1到sbtest25。
SELECT测试:
./sysbench --test=tests/db/select.lua --oltp-table-size=1000000 --mysql-table-engine=innodb --mysql-user=sysbench  --mysql-password=sysbench --mysql-port=3306 --mysql-host=10.0.37.123 --mysql-db=test  --max-requests=0 --max-time=600 --oltp-tables-count=20 --report-interval=10 run
另外有两个独立脚本可以进行Point select查询和Range查询的脚本:select_random_points.lua、select_random_ranges.lua
可选参数:
--oltp-point-selects:在一个事务里面Point select的数量,默认为10
--oltp-range-size:range查询的范围大小,默认100,应该小于oltp-table-size
--oltp-simple-ranges:在一个事务里面简单range查询的数量,默认1
--oltp-sum-ranges:在一个事务里面SUM range查询的数量,默认1
--oltp-order-ranges:在一个事务里面ORDER range查询的数量,默认1
--oltp-distinct-ranges:在一个事务里面DISTINCT range查询的数量,默认1
UPDATE测试:
同时有两个独立脚本可以进行update测试:update_index.lua、update_non_index.lua
./sysbench --test=tests/db/update_index.lua --oltp-table-size=1000000 --mysql-table-engine=innodb --mysql-user=sysbench  --mysql-password=sysbench --mysql-port=3306 --mysql-host=10.0.37.123 --mysql-db=test  --max-requests=0 --max-time=600 --oltp-tables-count=20 --report-interval=10 --num_threads=512 run
可选参数:
--oltp-index-updates:在单个事务中index update的数量,默认1;
--oltp-non-index-updates:在单个事务中non-index update的数量,默认1;
4、清除表
./sysbench --test=tests/db/oltp.lua  --oltp-tables-count=25 --num-threads=5 cleanup
5、oltp测试结果
sysbench 0.5:  multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 512 #测试线程数量,当前为512
Report intermediate results every 10 second(s) #每10秒打印下信息
Random number generator seed is 0 and will be ignored
Threads started!
[  10s] threads: 512, tps: 2169.58, reads/s: 30860.50, writes/s: 8706.12, response time: 456.99ms (95%)
[  20s] threads: 512, tps: 2233.20, reads/s: 31197.05, writes/s: 8929.02, response time: 469.47ms (95%)
[  30s] threads: 512, tps: 2249.30, reads/s: 31496.60, writes/s: 8995.40, response time: 445.78ms (95%)
[  40s] threads: 512, tps: 2202.50, reads/s: 30844.00, writes/s: 8807.40, response time: 481.42ms (95%)
[  50s] threads: 512, tps: 2263.60, reads/s: 31680.90, writes/s: 9052.30, response time: 441.13ms (95%)
[  60s] threads: 512, tps: 2259.20, reads/s: 31616.80, writes/s: 9042.50, response time: 441.92ms (95%)
[  70s] threads: 512, tps: 2276.20, reads/s: 31923.20, writes/s: 9115.90, response time: 444.04ms (95%)
[  80s] threads: 512, tps: 2276.30, reads/s: 31850.90, writes/s: 9100.90, response time: 443.78ms (95%) #tps表示10s内的平均事务数,reads/s表示select语句在10s内平均的执行数量,writes/s表示update、insert、delete语句在10s内平均的执行数量,response time表示95%语句的平均响应时间
...
OLTP test statistics:
queries performed:
read:                            19057346 #总select语句数量
write:                           5444956 #总update、insert、delete语句数量
other:                           2722478#为commit、unlock tables以及其他mutex的数量
total:                           27224780
    transactions:                        1361239 (2268.17 per sec.) #通常需要关注的数字(TPS)
deadlocks:                           0      (0.00 per sec.) #整个测试过程中发生死锁次数
read/write requests:                 24502302 (40827.01 per sec.)
other operations:                    2722478 (4536.33 per sec.)
General statistics:
total time:                          600.1494s #总执行时间,如果使用了 max-request参数,可以关注下这个结果
total number of events:              1361239
total time taken by event execution: 307190.3628s
response time:
min:                                  7.13ms
avg:                                225.67ms
max:                               1471.84ms  #最大响应时间
 approx.  95 percentile:             440.34ms #95%的语句的平均响应时间
Threads fairness:
events (avg/stddev):           2658.6699/50.08
execution time (avg/stddev):   599.9812/0.29

在源码文件db_driver.c和sb_fileio.c中有对各参数值进行定义。
同时测试时使用orzdba工具统计的数据部分如下:
-------- -------------------------io-usage-----------------------                                                 -QPS- -TPS-
time  |   r/s    w/s    rkB/s    wkB/s  queue await svctm %util|  ins   upd   del    sel   iud|
20:04:29|    0.0 2475.2     0.0  16002.0   0.1    0.1   0.0   8.7| 2166  4330  2165  30326  8661|
20:04:39|    0.0 2670.6     0.0  16738.0   0.1    0.1   0.0   9.1| 2156  4313  2156  30187  8626|
20:04:49|    0.0 2356.0     0.0  14956.9   0.1    0.1   0.0   9.2| 2172  4344  2171  30423  8688|
20:04:59|    0.0 2725.8     0.0  15563.3   0.1    0.1   0.0   9.4| 2168  4336  2169  30356  8675|
20:05:09|    0.0 2569.7     0.0  15425.1   0.1    0.1   0.0   8.7| 2165  4333  2165  30327  8663|
20:05:19|    0.0 2640.6     0.0  15377.1   0.2    0.1   0.0   9.7| 2170  4338  2170  30401  8679|
20:05:30|    0.0 2376.1     0.0  14424.9   0.1    0.1   0.0   8.2| 2180  4357  2179  30495  8717|
20:05:40|    0.0 2553.4     0.0  15090.8   0.1    0.1   0.0   8.8| 2164  4333  2166  30297  8664|
20:05:50|    0.0 2416.2     0.0  15587.6   0.1    0.1   0.0   8.5| 2174  4345  2173  30447  8693|
20:06:00|    0.0 2422.9     0.0  15534.9   0.1    0.1   0.0   8.0| 2172  4344  2172  30404  8690|
20:06:10|    0.1 2499.2     0.4  15285.3   0.1    0.1   0.0   9.1| 2167  4337  2167  30360  8672|
20:06:20|    0.0 2364.3     0.0  14850.4   0.2    0.1   0.0   9.4| 2167  4333  2168  30354  8669|
20:06:30|    0.0 2645.1     0.0  15898.7   0.1    0.1   0.0   9.1| 2166  4334  2167  30330  8668|
20:06:40|    0.0 2276.3     0.0  15125.8   0.1    0.1   0.0   7.9| 2168  4333  2167  30323  8669|
20:06:50|    0.0 2482.1     0.0  16110.2   0.1    0.1   0.0   9.5| 2167  4336  2167  30346  8671|

可以对比出sysbench的输出值含义。
参考:
1、"白​皮​书​ ​M​y​S​Q​L​ ​性​能​基​准​测​试": http://wenku.baidu.com/view/c10eea360b4c2e3f57276314.html
2、"服​务​器​性​能​测​试​利​器​_​之​三​_​平​台​处​理​性​能​工​具​S​Y​S​B​E​N​C​H": http://wenku.baidu.com/view/0b3e6ed45022aaea998f0f93.html
3、"Sysbench with support of multi-tables workload": http://www.mysqlperformanceblog.com/2011/04/29/sysbench-with-support-of-multi-tables-workload/
4、"Using Lua-enabled sysbench": https://blog.mariadb.org/using-lua-enabled-sysbench/
5、"oltp.lua": http://www.percona.com/docs/wiki/benchmark:sysbench:olpt.lua
6、 https://github.com/jayjanssen/sysbench-graphing-tests
7、 http://wiki.gentoo.org/wiki/Sysbench
来自为知笔记(Wiz)

转载于:https://my.oschina.net/anthonyyau/blog/290030

sysbench 0.5 oltp测试笔记相关推荐

  1. 使用sysbench对mysql压力测试

    sysbench是一个模块化的.跨平台.多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况.关于这个项目的详细介绍请看:https://github.com/akopytov/sy ...

  2. sysbench mysql测试_使用sysbench对MySQL进行测试

    为什么要测试,测什么东西? 测试的种类非常多,测试的目的也非常多,我这里主要的目的就两个 测试MySQL的极限IO 对比不同版本MySQL,不同参数, 不同硬件,不同系统对MySQL的性能影响 为什么 ...

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

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

  4. sysbench mysql oltp_sysbench OLTP基准测试

    1.sysbench参数 # 通过参数 --num-threads=N           创建测试线程的数目.默认为1. --max-requests=N          请求的最大数目.默认为1 ...

  5. sysbench 0.5:简介及使用

    sysbench 介绍 sysbench是一个模块化的.跨平台.多线程基准测试工具,主要用于评估测试各种不同系统参数 下的数据库负载情况. 它主要包括以下几种方式的测试: cpu性能 磁盘io性能 调 ...

  6. RGMII_PHY测试笔记1 基于开发板MiS603-X25

    RGMII_PHY测试笔记1 基于开发板MiS603-X25 作者:汤金元 日期:20150817 公司:南京米联电子科技有限公司 博客:http://blog.chinaaet.com/detail ...

  7. 阿里p7大手子测试笔记:一线互联网大厂面试问题吃透,巧过面试关

    前言 金九银十刚过去,有一部分朋友在这期间肯定经历了一番大厂面试的洗礼,不知道大家是经受住了考验如愿以偿了,还是折戟沉沙无功而返呢? 身边已经有技术大佬顺利通过了阿里P6/P7的面试,在30岁之前成功 ...

  8. RHEL8.0快速入门系列笔记--理论知识储备(一)

    RHEL8.0快速入门系列笔记–理论知识储备(一) 红帽公司发布Linux8.0系统已经有一段时间,最近准备学习关于RHEL8.0的相关新特性.根据官方介绍:RHEL8.0在云/容器化工作负载方面做了 ...

  9. 【C#8.0 and .NET Core 3.0 高级编程学习笔记】

    @C#8.0 and .NET Core 3.0 高级编程学习笔记 前言 为了能精细地完成对C#语言的学习,我决定选择一本书,精读它,理解它,记录它.我想选择什么书并不是最重要的,最重要的是持之以恒的 ...

  10. Power架构云小机测试笔记

    Power架构云小机测试笔记 一.云小机介绍 云小机是IBM与启创卓越推出的虚拟云主机,与常见的阿里.百度.网宿的云主机不同,云小机是基于Power架构的,而传统的云主机几乎都是基于x86架构的.我有 ...

最新文章

  1. 数据结构 图的广度优先遍历 C++
  2. 【数字信号处理】傅里叶变换性质 ( 共轭对称序列性质 | 共轭反对称序列性质 | 模偶对称 | 相角奇对称 )
  3. php 半角全角,PHP 全角转半角实现代码
  4. 【ThinkingInC++】61、非成员运算符
  5. ASP.NET-get与post模式的区别
  6. 【软考】[信息安全工程师]
  7. c语言 字符串转换为int或float
  8. 【转载】Katalon Studio 基本用法--录制脚本并查看测试报告
  9. java php cms_内容管理系统的开发策略研究——以PHP CMS、Node.js CMS、Java CMS为例
  10. 从Demo到Engine(二) -- Render Queue Sort
  11. gstreamer/deepstream方面的博文,全网首发且唯一,有图为证
  12. 如何在南方CASS中内插高程点
  13. 【树莓派】简易LoRa网关搭建+服务器设置一条龙教程(the things network)
  14. 带你了解计算机网络的背景和框架
  15. MySQL中的自增主键用完了怎么办
  16. 浪潮信息m6服务器性能,展现强劲性能,浪潮M6服务器为什么能刷新SPEC多项记录...
  17. ppt中如何合并流程图_PPT流程图文件的合并
  18. 用python实现BP神经网络预测运动员的跳高成绩
  19. 浅谈未来的人工智能与奇点临近
  20. 「津津乐道播客」#231. 串台:跟『新世相』聊聊被刷屏的『沈老师』

热门文章

  1. paip.验证码识别---序列号的反转
  2. paip.提升用户体验-----用户注册设计
  3. 应用程序中主键ID生成与UUID
  4. 别把量化交易变成拼人力、拼硬件、拼资源的烧钱游戏
  5. 高频交易鼻祖竟是靠「金发女郎」取得了400%的年回报
  6. (转)贝莱德,从0到6万亿
  7. 知乎:tomcat 与 nginx,apache的区别是什么?
  8. OpenAPI 开发者挑战赛第三期
  9. 如何应对容器和云原生时代的安全挑战?
  10. 计算机c语言报告册,计算机c语言实验报告.docx