Mysql基准测试

测试指标

  1. 吞吐量
    单位时间内的事务处理数,单位tps(每秒事务数)
  2. 响应时间
    语句平均响应时间,一般截取某段时间内,95%范围内的平均时间
  3. 并发性
    线程同时执行
  4. 可扩展性
    资源增加,性能也能正比增加

测试工具

mysqlslap
mysqlslap --options


–concurrency
代表并发数量,多个可以用逗号隔开,concurrency=10,50,100, 并发连接线程数分别是10、50、100个并发。
–engines
代表要测试的引擎,可以有多个,用分隔符隔开。
–iterations
代表要运行这些测试多少次。
–auto-generate-sql
代表用系统自己生成的SQL脚本来测试。
–auto-generate-sql-load-type
代表要测试的是读还是写还是两者混合的(read,write,update,mixed)
–number-of-queries
代表总共要运行多少次查询。每个客户运行的查询数量可以用查询总数/并发数来计算。
–debug-info
代表要额外输出CPU以及内存的相关信息。


mysqlslap -h 192.168.1.201 -u root  --auto-generate-sql --concurrency 20 --iterations 1 --create-schema=big_data --query='select * from dict limit 1'
sysbench
  1. 测试CPU性能


2个线程寻找20000以内的素数


sysbench --test=cpu --cpu-max-prime=20000 --num-threads=2 run
  1. 测试IO性能
sysbench --test=fileio --file-total-size=20G prepare
sysbench --test=fileio --file-total-size=20G --file-test-mode=rndrw run
sysbench --test=fileio --file-total-size=20G cleanup


seqwr:顺序写入
seqrewq:顺序重写
seqrd:顺序读取
rndrd:随机读取
rndwr:随机写入
rndrw:混合随机读写


  1. 测试事务性能
sysbench --test=oltp --mysql-table-engine=innodb \
--mysql-user=root --db-driver=mysql --mysql-db=test \
--oltp-table-size=3000 --oltp-table-name=t1 \
--mysql-socket=/var/lib/mysql/mysql.sock prepare
tpcc
  1. 工具安装
  2. tpcc_load装载数据
    命令格式:
tpcc_load [server] [DB] [user] [pass] [warehouse]

实例:

./tpcc_load 192.168.2.201 tpcc5 root "" 5

tpcc5库下创建5个仓库(仓库越多数据量越大)

  1. 模拟订单事务
    格式:
tpcc_start -h server_host -P port -d database_name

-u mysql_user -p mysql_password

-w warehouses -c connections -r warmup_time -l running_time

-w 仓库 -c 连接数 -r预热时间 -l 测试时间

实例:

# ./tpcc_start -h 192.168.1.201 -d tpcc1000 -u root -p '' -w 5 -c 5 -r 30 -l 30
5线程测试5个仓库,30秒预热,30秒测试