`

sysbench 基准测试

 
阅读更多
转载http://my.oschina.net/anthonyyau/blog/290030
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
 
 
(prepare run cleanup)
参数说明:
--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
4、"Using Lua-enabled sysbench":https://blog.mariadb.org/using-lua-enabled-sysbench/

 

分享到:
评论

相关推荐

    sysbench 基准测试数据

    sysbench 基准测试结果数据,分为50线程,100线程,200线程。

    sysbench基准测试

    `sysbench`是一款开源的多线程性能基准测试工具,主要用在数据库系统上,但也可用于评估系统的整体性能,包括CPU、内存、磁盘I/O等。它提供了丰富的测试场景,比如OLTP(在线事务处理)操作、CPU压力测试、文件IO...

    基于sysbench开发的毕设项目-sysbench基准测试系统.zip

    matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接...

    sysbench进行cpu,磁盘IO,内存,OLTP基准测试

    sysbench进行cpu,磁盘IO,内存,OLTP基准测试, 一sysbench-05安装 二用法下面的测试案例需要用到这些说明才能看的懂的 三开始测试 cpu性能测试 线程测试 磁盘IO性能测试 内存测试 OLTP测试

    sysbench:基于sysbench开发的毕设项目-sysbench基准测试系统

    sysbench是一款开源的多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试。 本项目是基于sysbench工具开发的毕设项目。 将测试工具集成为一个测试系统,将每一种测试类型开发为一个子系统。 每个...

    mysql-sysbench测试

    mysql-sysbench测试是指使用sysbench工具对mysql数据库进行基准测试,测试包括cpu测试、I/O基准测试和OLTP基准测试等。sysbench是一个开源的基准测试工具,可以模拟不同的负载场景来测试数据库的性能。 sysbench...

    详解MySQL基准测试和sysbench工具.doc

    数据库的基准测试是对数据库的性能指标进行定量的、可复现的、可对比的测试。基准测试与压力测试 基准测试可以理解为针对系统的一种压力测试。但基准测试不关心业务逻辑,更加简单、直接、易于测试,数据可以由工具...

    sysbench(sysbench-1.0.20)

    sysbench(sysbench-1.0.20)是一个基于LuaJIT的可编写脚本的多线程基准测试工具,主要用于数据库基准测试。 sysbench-1.0.20.tar.gz sysbench-1.0.20.zip

    MySQL数据库基于sysbench实现OLTP基准测试

    sysbench是一款非常优秀的基准测试工具,它能够精准的模拟MySQL数据库存储引擎InnoDB的磁盘的I/O模式。因此,基于sysbench的这个特性,下面利用该工具,对MySQL数据库支撑从简单到复杂事务处理工作负载的基准测试与...

    数据库经典压测工具sysbench双版本 sysbench0.5支持oracle sysbench1.1 支持达梦 附详细文档

    这些文档通常会涵盖环境设置、软件依赖、配置文件设置以及如何运行基准测试等关键信息。 总的来说,sysbench作为一个强大的数据库性能测试工具,能够帮助我们深入了解数据库在各种工作负载下的表现。sysbench0.5和...

    统一开发环境mysql5.7.11基准测试文档_基于sysbench测试工具

    - **范围说明**:此文档旨在通过Sysbench工具对MySQL 5.7.11环境进行基准测试。测试涵盖了两个不同的环境:扬州机房现运行生产环境和移动机房统一开发环境。测试主要从五个维度来进行:CPU计算能力、文件I/O能力、...

    使用sysbench来测试MySQL性能的详细教程

    sysbench是一个模块化的、跨平台、多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况。 目前sysbench代码托管在launchpad上,项目地址:https://launchpad.net/sysbench(原来的官网 ...

    性能测试sysbench.rar

    sysbench的主要功能包括CPU基准测试、内存基准测试、文件系统I/O基准测试和数据库性能测试。对于CPU测试,可以运行: ``` sysbench --test=cpu run ``` 内存测试可以使用`--test=memory`参数,例如: ``` ...

    Android版本的sysbench工具

    sysbench是一个模块化、跨平台、多线程基准测试工具,主要用于测试不同系统参数下的数据库负载情况,本文主要介绍0.4版本的使用。sysbench主要用于以下性能测试: 文件I/O性能 调度 内存分配和传输 POSIX线程 ...

    sysbench-1.0.zip

    sysbench是一款功能强大的系统性能基准测试工具,尤其在MySQL数据库的读写性能测试方面被广泛使用。它不仅可以评估数据库的吞吐量(tps,每秒事务处理量)、查询速率(qps,每秒查询量),还能衡量I/O操作的速度...

    sysbench-1.0.20.tar.gz

    sysbench是一款强大的多线程、跨平台的系统性能基准测试工具,广泛应用于评估系统的CPU、内存、I/O等各项性能。在本文中,我们将深入探讨如何在基于ARM架构的设备上使用sysbench-1.0.20.tar.gz进行CPU性能测试,以及...

    sysbench-master.zip

    sysbench是一款强大的多线程性能基准测试工具,主要应用于数据库系统、操作系统以及CPU性能的评估。它由Alexey Kopytov开发,并在GitHub上开源,链接为<https://github.com/akopytov/sysbench>。sysbench的最新版本...

    sysbench.rar

    **sysbench**是一款开源的、跨平台的系统性能测试和基准测试工具,广泛应用于Linux环境,用于评估数据库、CPU、磁盘I/O等系统的性能。它由Anton Lipov开发,支持多种数据库引擎,包括MySQL、PostgreSQL和Oracle。...

Global site tag (gtag.js) - Google Analytics