sysbench1.09压力测试mysql跑分

什么是sysbench?
sysbench是一款linux下的系统基准测试工具.
sysbench不仅可以测试CPU,I/O,最重要的是可以测试数据库性能.
mysql官方都是以sysbench为基准测试工具.
https://github.com/akopytov/sysbench

sysbench安装

yum install sysbench #centos系
apt-get install sysbench  #debian系

sysbench压力测试mysql
sysbench0.5以后都是使用LUA脚本进行测试,下面是官方自带的脚本

/usr/share/sysbench/bulk_insert.lua
/usr/share/sysbench/oltp_common.lua
/usr/share/sysbench/oltp_delete.lua
/usr/share/sysbench/oltp_insert.lua
/usr/share/sysbench/oltp_point_select.lua
/usr/share/sysbench/oltp_read_only.lua
/usr/share/sysbench/oltp_read_write.lua
/usr/share/sysbench/oltp_update_index.lua
/usr/share/sysbench/oltp_update_non_index.lua
/usr/share/sysbench/oltp_write_only.lua
/usr/share/sysbench/select_random_points.lua
/usr/share/sysbench/select_random_ranges.lua

sysbench压力测试mysql流程: 创建测试数据库-> prepare(生成数据) -> run(运行测试) -> cleanup(清理数据)

1创建测试数据库

mysql -uroot -proot  -e "create database test;"

2生成数据
sysbench  /usr/share/sysbench/oltp_read_write.lua  \   #执行脚本,这里我使用读写混合脚本
  --db-driver=mysql  \ #选择mysql数据库
  --mysql-host=localhost  \ #连接HOST
  --mysql-port=3306  \ #连接端口
  --mysql-db=test  \ #数据库
  --mysql-user=root   \ #账户
  --mysql-password=root   \ #密码
  --table_size=5000000   \ #生成表数量,每500万大概1.1G,临时文件1.1G,注意空间
  --tables=5  \  #生成5个表,可以自定义
  -threads=5   \ #5线程并发,可以自定义
  --time=10   \ #测试时间,可以自定义
  --report-interval=10   \ #报告间隔,可以自定义
  prepare  \ #生成测试数据

3运行测试

sysbench  /usr/share/sysbench/oltp_read_write.lua   --db-driver=mysql --mysql-host=localhost --mysql-port=3306 --mysql-db=test --mysql-user=root --mysql-password=root --table_size=5000000 --tables=5 --threads=5 --time=10 --report-interval=10 run

4清理数据
这个你可以直接在数据库删除也可以执行下面命令

sysbench  /usr/share/sysbench/oltp_read_write.lua   --db-driver=mysql --mysql-host=localhost --mysql-port=3306 --mysql-db=test --mysql-user=root --mysql-password=root --table_size=5000000 --tables=5 --threads=5 --time=10 --report-interval=10 cleanup

测试报告解析


[ 10s ] thds: 5 tps: 188.15 qps: 3769.78 (r/w/o: 2639.66/753.32/376.81) lat (ms,95%): 35.59 err/s: 0.00 reconn/s: 0.00
SQL statistics:
    queries performed:
        read:                            26418
        write:                           7548
        other:                           3774
        total:                           37740
    transactions:                        1887   (188.32 per sec.)
    queries:                             37740  (3766.31 per sec.)
    ignored errors:                      0      (0.00 per sec.)
    reconnects:                          0      (0.00 per sec.)

General statistics:
    total time:                          10.0187s
    total number of events:              1887

Latency (ms):
         min:                                 12.97
         avg:                                 26.52
         max:                                113.90
         95th percentile:                     35.59
         sum:                              50044.29

Threads fairness:
    events (avg/stddev):           377.4000/1.50
    execution time (avg/stddev):   10.0089/0.01


一般我们只关心两个数据,第一行都写清楚了
 transactions:  1887   (188.32 per sec.) # 每秒188.32事务
 queries:  37740  (3766.31 per sec.)# 每秒3766.31查询

如果你想测试CPU,I/O请参考下面的文章

http://www.ywnds.com/?p=10111

发表评论