1. 为什么需要性能测试
对线上产品缺乏心理预估
重现线上异常
规划未来的业务增长
测试不同硬件软件配置
2. 性能测试的分类
设备层的测试(服务器、磁盘性能,磁盘坏块率,服务器寿命)
业务层的测试
数据库层的测试(测试不同的mysql分支版本,参数搭配)
mysql测试分类
CPU Bound
IO Bound
写入测试,更新测试,纯读测试,混合模式
测试工具
sysbench
tpcc-mysql
mysqlslap
性能测试衡量指数
服务吞吐量(TPS--事务总量,QPS--请求量)
服务相应时间
服务并发性
关于Sysbench
只能在linux上使用
下载: git clone https://github.com/akopytov/sysbench.git
编译&安装
./autogen.sh
./configure
make
make install
sysbech流程
初始化数据-->运行测试-->清理数据
初始化数据:prepare语句
运行测试
run语句
cleanup
Tpcc-mysql
tpcc是专门针对联机交易处理系统(OLTP系统)的规范
tpcc流程
创建表结构和索引-->导入数据-->运行测试-->清理
tpcc_load [server] [db] [user] [pass] [warehouse]
总结
IO Bound测试数据量要远大于内存,CPU Bound测试数据量要小于内存
测试时间建议大于60分钟,减小误差
Sysbench更倾向于测试Mysql性能,TPCC更接近于业务
运行测试程序需要同时监控机器负载,mysql各项监控指标