MYSQL性能测试

MYSQL性能测试

目标:

  • 了解性能测试工具
  • 根据需求针对业务做好性能测试

性能测试的原因:

  • 对线上产品缺乏心理预估
  • 模拟异常
  • 规划未来的业务增长
  • 测试不同软硬件配置

性能测试分类:

  • 设备层的测试
  • 业务层的测试
  • 数据库层的测试:(1)测试不同分支版本(2)测试同一分支的不同版本(3)测试不同MYSQL参数搭配的性能差异

MYSQL测试分类:

  • CPU BOUND——测试内容远小于配置内存的大小,不会因为IO差异影响测试结果。
  • IO BOUND——与磁盘IO相关的测试,测试内容远大于内存。

常用测试工具:

开源:

  • SysBench:测试表结构比较简单没有约束,主要用于测试系统硬件。
  • tpcc-mysql:测试表结构复杂有约束,主要用于测试数据库的性能。
  • mysqlslap

性能测式指标:

  1. 服务吞吐量(TPS,QPS),TPS每秒事务量,QPS每秒请求量。一个事务有5条请求的话,TPS是10,那么QPS就是50。
  2. 服务响应时间
  3. 服务并发性

常见的测试过程:

初始化数据——运行测试——清理数据

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

发表回复