sysbench对MySQL的压测

Posted 91洲际哥的笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sysbench对MySQL的压测相关的知识,希望对你有一定的参考价值。

QPS - query per second
TPS - transaction per second 不是特别关注,每个业务场景中事务标准是不一样的

Ⅰ、sysbench测试框架

Ⅱ、常用测试脚本

[root@VM_42_63_centos lua]# pwd
/usr/local/src/sysbench-master/src/lua
[root@VM_42_63_centos lua]# ll *.lua
-rwxr-xr-x 1 root root  1446 Jun 27 02:35 bulk_insert.lua
-rw-r--r-- 1 root root  1307 Jun 27 02:35 empty-test.lua
-rw-r--r-- 1 root root 14468 Jun 27 02:35 oltp_common.lua
-rwxr-xr-x 1 root root  1290 Jun 27 02:35 oltp_delete.lua
-rwxr-xr-x 1 root root  2415 Jun 27 02:35 oltp_insert.lua
-rwxr-xr-x 1 root root  1265 Jun 27 02:35 oltp_point_select.lua
-rwxr-xr-x 1 root root  1649 Jun 27 02:35 oltp_read_only.lua
-rwxr-xr-x 1 root root  1824 Jun 27 02:35 oltp_read_write.lua
-rwxr-xr-x 1 root root  1118 Jun 27 02:35 oltp_update_index.lua
-rwxr-xr-x 1 root root  1127 Jun 27 02:35 oltp_update_non_index.lua
-rwxr-xr-x 1 root root  1440 Jun 27 02:35 oltp_write_only.lua
-rw-r--r-- 1 root root  1631 Jun 27 02:35 prime-test.lua
-rwxr-xr-x 1 root root  1933 Jun 27 02:35 select_random_points.lua
-rwxr-xr-x 1 root root  2132 Jun 27 02:35 select_random_ranges.lua

Ⅲ、开搞

这个老版本好像有参数设置热数据的量什么的,现在最新版本不知道咋搞,就先将就直接弄吧,不管了

准备数据
[root@VM_42_63_centos lua]# sysbench --mysql-host=127.0.0.1 --mysql-port=3307 --mysql-db=sbtest --tables=10 --table-size=10000 --mysql-user=root --mysql-password=123 oltp_update_index.lua prepare
sysbench 1.1.0 (using bundled LuaJIT 2.1.0-beta3)

Creating table \'sbtest1\'...
Inserting 10000 records into \'sbtest1\'
Creating a secondary index on \'sbtest1\'...
Creating table \'sbtest2\'...
Inserting 10000 records into \'sbtest2\'
Creating a secondary index on \'sbtest2\'...
Creating table \'sbtest3\'...
Inserting 10000 records into \'sbtest3\'
Creating a secondary index on \'sbtest3\'...
...

开始测试
[root@VM_42_63_centos lua]# sysbench oltp_update_index.lua --mysql-host=127.0.0.1 --mysql-port=3307 --mysql-user=root --mysql-password=123 --threads=10 --time=120 --report-interval=10 run
sysbench 1.1.0 (using bundled LuaJIT 2.1.0-beta3)

Running the test with following options:
Number of threads: 10
Report intermediate results every 10 second(s)
Initializing random number generator from current time


Initializing worker threads...

Threads started!

[ 10s ] thds: 10 tps: 804.14 qps: 804.14 (r/w/o: 0.00/804.14/0.00) lat (ms,95%): 36.89 err/s: 0.00 reconn/s: 0.00
[ 20s ] thds: 10 tps: 647.70 qps: 647.70 (r/w/o: 0.00/647.70/0.00) lat (ms,95%): 35.59 err/s: 0.00 reconn/s: 0.00
[ 30s ] thds: 10 tps: 2220.50 qps: 2220.50 (r/w/o: 0.00/2220.50/0.00) lat (ms,95%): 18.28 err/s: 0.00 reconn/s: 0.00
[ 40s ] thds: 10 tps: 4566.59 qps: 4566.59 (r/w/o: 0.00/4566.59/0.00) lat (ms,95%): 2.71 err/s: 0.00 reconn/s: 0.00
[ 50s ] thds: 10 tps: 4194.30 qps: 4194.30 (r/w/o: 0.00/4194.30/0.00) lat (ms,95%): 7.30 err/s: 0.00 reconn/s: 0.00
[ 60s ] thds: 10 tps: 4717.91 qps: 4717.91 (r/w/o: 0.00/4717.91/0.00) lat (ms,95%): 2.76 err/s: 0.00 reconn/s: 0.00
...

看结果,这里就不解释了,比较简单,随便看看就好
SQL statistics:
    queries performed:
        read:                            0
        write:                           665574
        other:                           0
        total:                           665574
    transactions:                        665574 (5546.21 per sec.)
    queries:                             665574 (5546.21 per sec.)
    ignored errors:                      0      (0.00 per sec.)
    reconnects:                          0      (0.00 per sec.)

Throughput:
    events/s (eps):                      5546.2076
    time elapsed:                        120.0052s
    total number of events:              665574

Latency (ms):
         min:                                    0.27
         avg:                                    1.80
         max:                                  123.45
         95th percentile:                        2.43
         sum:                              1199263.13

Threads fairness:
    events (avg/stddev):           66557.4000/209.28
    execution time (avg/stddev):   119.9263/0.00

以上是关于sysbench对MySQL的压测的主要内容,如果未能解决你的问题,请参考以下文章

关于mysql的压测sysbench

MySQL: 7 对生产环境中的数据库进行360度无死角压测

MySQL: 8 在数据库的压测过程中,观察机器性能

mysql之 sysbench1.0.3 安装与系统压力测试

MySQL压测使用sysbench对MySQL进行压力测试

使用sysbench进行MySQL压力测试