MYSQL性能测试
目标:
- 了解性能测试工具
- 根据需求针对业务做好性能测试
性能测试的原因:
- 对线上产品缺乏心理预估
- 模拟异常
- 规划未来的业务增长
- 测试不同软硬件配置
性能测试分类:
- 设备层的测试
- 业务层的测试
- 数据库层的测试:(1)测试不同分支版本(2)测试同一分支的不同版本(3)测试不同MYSQL参数搭配的性能差异
MYSQL测试分类:
- CPU BOUND——测试内容远小于配置内存的大小,不会因为IO差异影响测试结果。
- IO BOUND——与磁盘IO相关的测试,测试内容远大于内存。
常用测试工具:
开源:
- SysBench:测试表结构比较简单没有约束,主要用于测试系统硬件。
- tpcc-mysql:测试表结构复杂有约束,主要用于测试数据库的性能。
- mysqlslap
性能测式指标:
- 服务吞吐量(TPS,QPS),TPS每秒事务量,QPS每秒请求量。一个事务有5条请求的话,TPS是10,那么QPS就是50。
- 服务响应时间
- 服务并发性
常见的测试过程:
初始化数据——运行测试——清理数据
PS:TPCC-MYSQL导入数据真心慢,200仓库要导2个多小时,建议在导数据时用并发导入,在安装目录里有一个load.sh,会节省很多时间。或都用第三方脚本导入。详情就上网搜索吧!我也是搜索的。
下面是我的测试结果:
[0] sc:30049 lt:3 rt:0 fl:0 [1] sc:30052 lt:0 rt:0 fl:0 [2] sc:3005 lt:0 rt:0 fl:0 [3] sc:3005 lt:0 rt:0 fl:0 [4] sc:3005 lt:0 rt:0 fl:0 in 3600 sec. [0] sc:30049 lt:3 rt:0 fl:0 [1] sc:30052 lt:0 rt:0 fl:0 [2] sc:3005 lt:0 rt:0 fl:0 [3] sc:3005 lt:0 rt:0 fl:0 [4] sc:3005 lt:0 rt:0 fl:0 (all must be [OK]) [transaction percentage] Payment: 43.48% (>=43.0%) [OK] Order-Status: 4.35% (>= 4.0%) [OK] Delivery: 4.35% (>= 4.0%) [OK] Stock-Level: 4.35% (>= 4.0%) [OK] [response time (at least 90% passed)] New-Order: 99.99% [OK] Payment: 100.00% [OK] Order-Status: 100.00% [OK] Delivery: 100.00% [OK] Stock-Level: 100.00% [OK] 500.867 TpmC