测试指标
-
吞吐量
单位时间内的事务处理数,单位tps(每秒事务数) -
响应时间
语句平均响应时间,一般截取某段时间内,95%范围内的平均时间 -
并发性
线程同时执行 -
可扩展性
资源增加,性能也能正比增加
测试工具
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
- 测试CPU性能
2个线程寻找20000以内的素数
sysbench --test=cpu --cpu-max-prime=20000 --num-threads=2 run
- 测试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:混合随机读写
- 测试事务性能
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
- 工具安装
-
tpcc_load装载数据
命令格式:
tpcc_load [server] [DB] [user] [pass] [warehouse]
实例:
./tpcc_load 192.168.2.201 tpcc5 root "" 5
tpcc5库下创建5个仓库(仓库越多数据量越大)
-
模拟订单事务
格式:
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秒测试