使用sysbench进行mysql基准测试

  • mysql版本: 5.6
  • sysbench: 1.0.17
  • 系统: centos 7(4核8G) SSD

sysbench安装: yum install sysbench -y
跑测试需要用到lua脚本,不想自己写可以用官方的脚本
git clone https://github.com/akopytov/sysbench.git

1、测试只读性能

  • 准备数据: sysbench /root/sysbench/src/lua/oltp_read_only.lua --threads=10 --events=0 --time=300 --mysql-host=xxx --mysql-user=root --mysql-password=password --mysql-port=3306 --tables=20 --table-size=100000 --range_selects=off --db-ps-mode=disable --report-interval=1 prepare
  • 运行测试: sysbench /root/sysbench/src/lua/oltp_read_only.lua --threads=10 --events=0 --time=300 --mysql-host=xxx --mysql-user=root --mysql-password=password --mysql-port=3306 --tables=20 --table-size=100000 --range_selects=off --db-ps-mode=disable --report-interval=1 run
  • 清理数据: sysbench /root/sysbench/src/lua/oltp_read_only.lua --threads=10 --events=0 --time=300 --mysql-host=xxx --mysql-user=root --mysql-password=password --mysql-port=3306 --tables=20 --table-size=100000 --range_selects=off --db-ps-mode=disable --report-interval=1 cleanup

2、测试读写性能

  • 准备数据: sysbench /root/sysbench/src/lua/oltp_read_write.lua --threads=10 --events=0 --time=300 --mysql-host=xxx --mysql-user=root --mysql-password=password --mysql-port=3306 --tables=20 --table-size=1000000 --report-interval=1 prepare
  • 运行数据: sysbench /root/sysbench/src/lua/oltp_read_write.lua --threads=10 --events=0 --time=300 --mysql-host=xxx --mysql-user=root --mysql-password=password --mysql-port=3306 --tables=20 --table-size=1000000 --report-interval=1 run
  • 清理数据: sysbench /root/sysbench/src/lua/oltp_read_write.lua --threads=10 --events=0 --time=300 --mysql-host=xxx --mysql-user=root --mysql-password=password --mysql-port=3306 --tables=20 --table-size=1000000 --report-interval=1 cleanup

备注: 测试的并发数(threads)和表的大小(table-size)均会影响测试结果,建议设置多个值排列组合进行测试
例: table-size=100000/50000/1000000 threads=10/20/30
table-size变化了之后需要重新cleanup和prepare数据,threads则不用

单表10W数据下的性能

操作 并发 QPS TPS Latency 95% latency
10 36.7k 3k 3.3ms 4.7ms
20 43.3k 3.6k 5.5ms 12.5ms
30 35.8k 3k 10.1ms 38.9ms
读写 15 7.9k 396 37.8ms 125.5ms
读写 20 7.9k 396 50.4ms 147.6ms
读写 25 9.4k 472 53ms 142.4ms
读写 30 9.3k 467 64.3ms 150.3ms

单表50W数据下的性能

操作 并发 QPS TPS Latency 95% latency
5 22k 1.8k 2.7ms 3.4ms
10 36k 3k 3.3ms 4.7ms
15 39k 3.3k 4.6ms 8.4ms
20 34k 2.8k 7.1ms 27.2ms
读写 5 1.7k 84.8 58.9ms 142.4ms
读写 10 2.7k 134.1 74.5ms 150.3ms
读写 15 3.25k 162.5 92ms 248.8ms
读写 20 3.4k 169 118.2ms 331.9ms
读写 25 3.7k 184.9 135ms 419.5ms

单表100W数据下的性能

操作 并发 QPS TPS Latency 95% latency
5 21k 1.75k 2.95ms 3.75ms
10 35.5k 2.96k 3.4ms 4.65ms
15 38k 3.2k 4.7ms 8.4ms
20 34k 2.8k 7.1ms 27.2ms
读写 5 1374 68.7 72.7ms 164.5ms
读写 10 1940 97 103.1ms 277.2ms
读写 15 2188 109.4 136.9ms 376.5ms
读写 20 2619 131 152.5ms 412ms

Mysql基准性能小结:

表大小 操作 QPS TPS Latency 95% latency
10W 43.3k 3.6k 5.5ms 12.5ms
10W 读写 9.4k 472 53ms 142.4ms
50W 39k 3.3k 4.6ms 8.4ms
50W 读写 3.25k 162.5 92ms 248.8ms
100W 38k 3.2k 4.7ms 8.4ms
100W 读写 1940 97 103.1ms 277.2ms

你可能感兴趣的:(使用sysbench进行mysql基准测试)