文档章节

sysbench OLTP基准测试

 小小人故事
发布于 2015/12/15 16:57
字数 953
阅读 87
收藏 0

1、sysbench参数

# 通过参数
  --num-threads=N           创建测试线程的数目。默认为1.
  --max-requests=N          请求的最大数目。默认为10000,0代表不限制。
  --max-time=N              最大执行时间,单位是s。默认是0,不限制。
  --forced-shutdown=STRING  超过max-time强制中断。默认是off。]
  --thread-stack-size=SIZE  每个线程的堆栈大小。默认是32K。
  --init-rng=[on|off]       在测试开始时是否初始化随机数发生器。默认是off。
  --test=STRING             指定测试项目名称。
  --debug=[on|off]          是否显示更多的调试信息。默认是off。
  --validate=[on|off]       在可能情况下执行验证检查。默认是off。 
  
  --num-threads=8 表示发起 8个并发连接
  --oltp-read-only=off 表示不要进行只读测试,也就是会采用读写混合模式测试
  --report-interval=10 表示每10秒输出一次测试进度报告
  --rand-type=uniform 表示随机类型为固定模式,其他几个可选随机模式:uniform(固定),gaussian(高斯),special(特定的),pareto(帕累托)
  --max-time=120 表示最大执行时长为 120秒
  --max-requests=0 表示总请求数为 0,因为上面已经定义了总执行时长,所以总请求数可以设定为 0;也可以只设定总请求数,不设定最大执行时长
  --percentile=99 表示设定采样比例,默认是 95%,即丢弃1%的长请求,在剩余的99%里取最大值


2、OLTP压测

    1、创建数据表

#创建数据库
mysqladmin create sbtest
sysbench --test=/root/sysbench/sysbench/sysbench/tests/db/oltp.lua --mysql-user=root --mysql-host=localhost --mysql-socket=/tmp/mysql.sock --mysql-password=123456  --mysql-table-engine=innodb --oltp-table-size=10000000 prepare 

#5.0版本开始使用   --test=/root/sysbench/sysbench/sysbench/tests/db/oltp.lua
#如果在本机,也可以使用 –mysql-socket 指定 socket 文件来连接。加载测试数据时长视数据量而定,若过程比较久需要#稍加耐心等待。
#真实测试场景中,数据表建议不低于10个,单表数据量不低于500万行,当然了,要视服务器硬件配置而定。如果是配备了SSD或者PCIE SSD这种高IOPS设备的话,则建议单表数据量最少不低于1亿行。

  2、压测

sysbench  --mysql-db=sbtest --max-requests=0 --test=/root/sysbench/sysbench/sysbench/tests/db/oltp.lua --mysql-engine-trx=yes --mysql-table-engine=innodb --oltp-table-size=10000000 --db-ps-mode=disable  --mysql-user=root --mysql-host=localhost --mysql-socket=/tmp/mysql.sock  --mysql-password=123456 --num-threads=16 --max-time=600 run
#压测1个小时读写,16线程

#使用16个线程开始测试,只读模式。
#sysbench  --mysql-db=sbtest --max-requests=0 --test=/root/sysbench/sysbench/sysbench/tests/db/oltp.lua --mysql-engine-trx=yes --mysql-table-engine=innodb --oltp-table-size=10000000 --db-ps-mode=disable  --mysql-user=root --mysql-host=localhost --mysql-socket=/tmp/mysql.sock  --oltp-read-only --mysql-password=123456 --num-threads=16 --max-time=60 run

即:模拟 对10个表并发OLTP测试,每个表1000万行记录,持续压测时间为 1小时。
真实测试场景中,建议持续压测时长不小于30分钟,否则测试数据可能不具参考意义。

  3、压测结果

OLTP test statistics:
    queries performed:
        read:                            170996  -- 读总数
        write:                           48856   -- 写总数
        other:                           24428   -- 其他操作总数(SELECT、INSERT、UPDATE、DELETE之外的操作,例如COMMIT等)
        total:                           244280
    transactions:                        12214  (203.47 per sec.) 总事务数(每秒事务数)
    read/write requests:                 219852 (3662.51 per sec.) 读写总数(每秒读写次数)
    other operations:                    24428  (406.95 per sec.)  其他操作总数(每秒其他操作次数)
    ignored errors:                      0      (0.00 per sec.)
    reconnects:                          0      (0.00 per sec.)
General statistics:
    total time:                          60.0276s
    total number of events:              12214  - 共发生多少事务数
    total time taken by event execution: 959.8838s  所有事务耗时相加(不考虑并行因素)
    response time:
         min:                                  8.07ms     -- 最小耗时
         avg:                                 78.59ms     -- 平均耗时
         max:                                750.64ms     -- 最长耗时
         approx.  95 percentile:             141.56ms     -- 超过99%平均耗时
Threads fairness:
    events (avg/stddev):           763.3750/7.61
    execution time (avg/stddev):   59.9927/0.02

    

4、清理数据

#清理测试的残留信息
sysbench  --mysql-db=sbtest  --test=/root/sysbench/sysbench/sysbench/tests/db/oltp.lua --oltp-table-size=1000000  --mysql-user=root --mysql-host=localhost --mysql-socket=/tmp/mysql.sock  --mysql-password=123456 cleanup


5、参考文章

    http://imysql.com/2014/10/17/sysbench-full-user-manual.shtml

    http://www.cnblogs.com/ylqmf/archive/2012/09/29/2708562.html

    http://my.oschina.net/anthonyyau/blog/290030


© 著作权归作者所有

粉丝 3
博文 73
码字总数 22668
作品 0
昌平
私信 提问
详解MySQL基准测试和sysbench工具

原文出处:编程迷思 作为一名后台开发,对数据库进行基准测试,以掌握数据库的性能情况是非常必要的。本文介绍了MySQL基准测试的基本概念,以及使用sysbench对MySQL进行基准测试的详细方法。...

编程迷思
2018/04/25
0
0
mysql运维-基准测试之sysbench

基准测试简介 ? 什么是基准测试:数据库的基准测试是对数据库的性能指标进行定量的、可复现的、可对比的测试。 ? 基准测试与压力测试:基准测试可以理解为针对系统的一种压力测试。但基准测试...

坦途abc
2018/08/27
0
0
sysbench的安装及使用

sysbench是一个模块化的、跨平台、多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况。关于这个项目的详细介绍请看:http://sysbench.sourceforge.net。 它主要包括以...

范堡
2009/08/24
5.3K
5
sysbench 0.5 oltp测试笔记

sysbench 0.5相比0.4版本的主要变化是,oltp测试结合了lua脚本,不需要修改源码,通过自定义lua脚本就可以实现不同业务类型的测试。同时0.5相比0.4需要消耗更多的cpu资源。 1、查看帮助 sysb...

AnthonyYau
2014/07/12
0
5
MariaDB 10.1 可每秒处理一百万次查询

MariaDB 10.1 不仅仅包含大量的新特性,同时还有非常大的性能提升。最重要的改进是大量多线程硬件扩展。 以下的数据是 MariaDB-10.1.8 和 MariaDB-10.0.21 基于简单 OLTP 基准 SysBench 工具...

失足处男的倒霉孩子
2015/10/20
1K
3

没有更多内容

加载失败,请刷新页面

加载更多

texlive安装

Installing to: D:/bin/texlive/texlive/2019Installing [001/307, time/total: ??:??/??:??]: adobemapping [2130k]Installing [002/307, time/total: 00:03/08:57]: ae [84k]Installing......

MtrS
33分钟前
2
0
运维规范

命名规范 发布流程 监控告警 故障定位 状态 日志 监控

以谁为师
今天
2
0
约瑟夫环(报数游戏)java实现

开端 公司组织考试,一拿到考题,就是算法里说的约瑟夫环,仔细想想 以前老师将的都忘了,还是自己琢磨把~ package basic.gzy;import java.util.Iterator;import java.util.LinkedList;...

无极之岚
今天
3
0
Kernel字符设备驱动框架

Linux设备分为三大类:字符设备,块设备和网络设备,这三种设备基于不同的设备框架。相较于块设备和网络设备,字符设备在kernel中是最简单的,也是唯一没有基于设备基础框架(device结构)的...

yepanl
今天
3
0
Jenkins 中文本地化的重大进展

本文首发于:Jenkins 中文社区 我从2017年开始,参与 Jenkins 社区贡献。作为一名新成员,翻译可能是帮助社区项目最简单的方法。 本地化的优化通常是较小的改动,你无需了解项目完整的上下文...

Jenkins中文社区
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部