mysql基准测试工具sysbench初探

栏目: IT技术 · 发布时间: 5年前

内容简介:sysbench是一个基于多线程的测试工具,是一款专业的数据库benchmarks工具,当然它也可以测试cpu、memory、disk,不过目前的重点是数据库基准测试。通过sysbench测试,可以对数据库有更深刻的理解,从而进行性能调优,但不可能一步到位,需要进行迭代的测试,加上经验,从而得到更好的效果。sysbench官方文档不是特别好理解,这是一大缺点。

sysbench是一个基于多线程的测试工具,是一款专业的数据库benchmarks工具,当然它也可以测试cpu、memory、disk,不过目前的重点是数据库基准测试。

通过sysbench测试,可以对数据库有更深刻的理解,从而进行性能调优,但不可能一步到位,需要进行迭代的测试,加上经验,从而得到更好的效果。

sysbench官方文档不是特别好理解,这是一大缺点。

安装和基本参数

curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash
sudo yum -y install sysbench

语法:

sysbench [options]... [testname] [command]

其中testname是built-in test的名字,比如fileio, memory, cpu,对于数据库可以直接找到/usr/share/sysbench/tests/include/oltp_legacy目录下的 lua 文件,里面有很多 MySQL 测试用例。

command和testname有关,主要包含prepare(准备测试用例),run(具体测试),cleanup(清理),help。比如:

sysbench oltp_read_only  help

options表示具体的参数,比如:

  • —threads:

    表示启动的线程数

  • —events:

    表示发送的请求数

  • —time:

    表示总的执行时间

  • —rate:

    每秒执行的总请求数 events (transactions)

  • —report-interval:

    定期汇总统计数据

测试

sysbench /usr/share/sysbench/tests/include/oltp_legacy/oltp.lua  --oltp-table-size=10000000 --db-driver=mysql --mysql-db=test --mysql-user= --mysql-password=  prepare

sysbench /usr/share/sysbench/tests/include/oltp_legacy/oltp.lua  --oltp-table-size=10000000 --db-driver=mysql --mysql-db=test --mysql-user= --mysql-password= --time=60  --events=500000 --threads=10  run  --report-interval=5 >>sysbench.log

其中生成的测试表有1000万条记录,10个线程,另外-oltp-read-only=on表示只测试读,oltp是一个比较常见的测试,主要包含事务,数据库增删改查。

测试主要是参数优化前和优化后的数据对比,服务器配置是基本相同的。

结论

[ 5s ] thds: 10 tps: 1867.55 qps: 37383.21 (r/w/o: 26171.51/7474.60/3737.10) lat (ms,95%): 8.43
[ 10s ] thds: 10 tps: 1845.23 qps: 36899.85 (r/w/o: 25831.25/7378.13/3690.46) lat (ms,95%): 8.58
[ 15s ] thds: 10 tps: 1747.79 qps: 34956.77 (r/w/o: 24468.84/6992.35/3495.58) lat (ms,95%): 9.73
[ 20s ] thds: 10 tps: 1712.80 qps: 34255.44 (r/w/o: 23981.03/6848.81/3425.60) lat (ms,95%): 10.46
[ 25s ] thds: 10 tps: 1696.80 qps: 33930.40 (r/w/o: 23748.80/6788.20/3393.40) lat (ms,95%): 10.84

SQL statistics:
    queries performed:
        read: 1409366
        write: 402676
        other: 201338
        total: 2013380
    transactions: 100669 (1677.60 per sec.)
    queries: 2013380 (33552.05 per sec.)

[ 5s ] thds: 10 tps: 432.05 qps: 8663.55 (r/w/o: 6067.86/1729.59/866.10) lat (ms,95%): 66.84
[ 10s ] thds: 10 tps: 439.01 qps: 8782.22 (r/w/o: 6147.15/1757.04/878.02) lat (ms,95%): 58.92
[ 15s ] thds: 10 tps: 499.20 qps: 9980.78 (r/w/o: 6987.19/1995.20/998.40) lat (ms,95%): 54.83
[ 20s ] thds: 10 tps: 502.60 qps: 10061.66 (r/w/o: 7044.44/2012.01/1005.21) lat (ms,95%): 51.02
[ 25s ] thds: 10 tps: 514.80 qps: 10297.21 (r/w/o: 7208.60/2059.00/1029.60) lat (ms,95%): 50.11

SQL statistics:
    queries performed:
        read: 422352
        write: 120672
        other: 60336
        total: 603360
    transactions: 30168  (502.53 per sec.)
    queries: 603360 (10050.59 per sec.)

1:threads越大,参数调整后的数据库qps和tps表现就更好(3倍,并发线程数是10),虽然cpu压力变大(主要是在积极的干活,负载接近10)。

2:通过MySQLTuner观察buffer利用率,这是最重要的指标。

[OK] InnoDB Read buffer efficiency: 99.99% (2475662828 hits/ 2475882691 total)
[!!] InnoDB Write Log efficiency: 53.62% (23506385 hits/ 43841142 total)

[OK] InnoDB Read buffer efficiency: 99.75% (2084860001 hits/ 2090165590 total)
[!!] InnoDB Write Log efficiency: 48.16% (15492072 hits/ 32169426 total)

对于读buffer效率,看上去相差不大,但其实性能相差很大,而对于更新操作,大内存的优势就非常大了。

3:排序

对于 排序 来说,内存设置越大,磁盘I/O压力就越小。

Temporary tables created on disk: 0% (105 on disk / 780K total)

测试不是那么容易的,测试方法也是非常重要的,尤其对于实际的数据库应用(这是最难模拟的),基准测试就更难了,本文只是简单反映一些情况,但不可否认的是性能有了很大的提升,性能越高,并发性就越好。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Essential PHP Security

Essential PHP Security

Chris Shiflett / O'Reilly Media / 2005-10-13 / USD 29.95

Being highly flexible in building dynamic, database-driven web applications makes the PHP programming language one of the most popular web development tools in use today. It also works beautifully wit......一起来看看 《Essential PHP Security》 这本书的介绍吧!

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具