zoukankan      html  css  js  c++  java
  • 关于mysql性能压测之tpcc

    软件下载:

    wget http://imysql.com/wp-content/uploads/2014/09/tpcc-mysql-src.tgz
    安装依赖:
    yum install -y mysql-devel
    解压安装:
    tar xf tpcc-mysql-src.tar
    make

    测试前准备:
    [root tpcc-mysql]$mysql -uroot -p123456 -S /data/mysql-5.5/mysql.sock -e "create database tpcctest"
    [root tpcc-mysql]$ mysql -uroot -p123456 -S /data/mysql-5.5/mysql.sock tpcctest <./create_table.sql 
    注:如果出现导入错误请在create_table.sql里面加入语句sql(use tpcctest;) [root tpcc-mysql]$ mysql -uroot -p123456 -S /data/mysql-5.5/mysql.sock -e "show tables from tpcctest"
    加载数据:

    初始化完毕后,就可以开始加载测试数据了

    tpcc_load用法如下:

    [root tpcc-mysql]$ ./tpcc_load 127.0.0.1:3308 tpcctest root 123456 10

    进行数据库压测:
    ./tpcc_start
    -w 指定仓库数量
    -c 指定并发连接数
    -r 指定开始测试前进行warmup的时间,进行预热后,测试效果更好
    -l 指定测试持续时间
    -i  指定生成报告间隔时长
    -f 指定生成的报告文件名

    [root tpcc-mysql]$ ./tpcc_start -h127.0.0.1 -P3308 -d tpcctest -u root -p 123456 -w 10 -c 10 -r 120 -l 120 
    结果显示:
    ***************************************
    *** ###easy### TPC-C Load Generator ***
    ***************************************
    option h with value '127.0.0.1'
    option P with value '3308'
    option d with value 'tpcctest'
    option u with value 'root'
    option p with value '123456'
    option w with value '10'
    option c with value '10'
    option r with value '120'
    option l with value '120'
    <Parameters>
         [server]: 127.0.0.1      -- 主机
         [port]: 3308             -- 端口
         [DBname]: tpcctest       -- 压测的数据库
           [user]: root           -- 账号
           [pass]: 123456         -- 密码
      [warehouse]: 10             -- 仓库数
     [connection]: 10             -- 并发线程数 
         [rampup]: 120 (sec.)     -- 数据预热时长 
        [measure]: 120 (sec.)     -- 压测时长
    
    RAMP-UP TIME.(120 sec.)       --预热结束
    
    MEASURING START.              --开始压测
    
      10, 27(0):3.829|7.321, 26(0):1.854|4.399, 3(0):1.503|1.670, 3(0):4.467|5.559, 3(0):14.525|20.229 --每10秒输出一次压测数据
      20, 31(0):3.153|3.247, 29(0):0.861|1.202, 3(0):0.400|0.475, 3(0):4.471|4.980, 0(0):0.000|0.000
      30, 28(0):3.559|3.943, 27(0):0.807|0.838, 2(0):0.285|0.379, 2(0):3.273|3.628, 3(0):13.534|13.577
      40, 26(0):3.643|4.040, 32(0):0.676|0.686, 4(0):0.337|0.393, 4(0):4.397|5.081, 6(0):13.890|16.757
      50, 32(1):4.377|5.695, 30(0):0.749|0.813, 2(0):0.254|0.309, 3(0):3.418|4.066, 2(0):11.356|12.581
      60, 32(0):3.561|3.602, 33(0):1.024|1.645, 4(0):0.318|0.413, 3(0):3.446|3.542, 5(0):11.772|12.417
      70, 41(0):3.228|3.415, 39(0):0.956|1.296, 4(0):0.394|0.396, 5(0):3.671|3.925, 1(0):0.000|13.920
      80, 35(1):4.096|6.454, 35(0):0.727|0.877, 3(0):0.344|0.410, 3(0):3.100|3.961, 4(0):11.251|11.489
      90, 27(0):2.787|3.505, 25(0):0.945|1.093, 2(0):0.394|0.423, 2(0):2.804|5.293, 3(0):11.637|12.463
     100, 31(2):5.050|5.467, 31(0):0.835|0.884, 4(0):0.334|0.363, 4(0):3.094|3.738, 2(0):11.853|11.885
     110, 32(0):3.101|3.968, 33(0):0.606|1.503, 3(0):0.255|0.347, 3(0):3.007|3.427, 5(0):11.685|12.653
     120, 34(0):3.359|3.713, 33(0):0.730|0.844, 3(0):0.319|0.504, 3(0):3.092|3.502, 2(0):8.187|10.347
    
    -- 以逗号分隔,共6列
    -- 第一列,第N次10秒
    -- 第二列,新订单成功执行压测的次数(推迟执行压测的次数):90%事务的响应时间|本轮测试最大响应时间,新订单事务数也被认为是总有效事务数的指标
    -- 第三列,支付业务成功执行次数(推迟执行次数):90%事务的响应时间|本轮测试最大响应时间
    -- 第四列,订单状态业务的结果,后面几个的意义同上
    -- 第五列,物流发货业务的结果,后面几个的意义同上
    -- 第六列,库存仓储业务的结果,后面几个的意义同上
    
    STOPPING THREADS..........          -- 结束压测
     
    <Raw Results>                       -- 第一次统计结果
      [0] sc:372  lt:4  rt:0  fl:0      -- New-Order,新订单业务成功(success,简写sc)次数,延迟(late,简写lt)次数,重试(retry,简写rt)次数,失败(failure,简写fl)次数
      [1] sc:373  lt:0  rt:0  fl:0      -- Payment,支付业务统计,其他同上
      [2] sc:37  lt:0  rt:0  fl:0       -- Order-Status,订单状态业务统计,其他同上
      [3] sc:38  lt:0  rt:0  fl:0       -- Delivery,发货业务统计,其他同上
      [4] sc:36  lt:0  rt:0  fl:0       -- Stock-Level,库存业务统计,其他同上
     in 120 sec.
    
    <Raw Results2(sum ver.)>            -- 第二次统计结果,其他同上
      [0] sc:372  lt:4  rt:0  fl:0 
      [1] sc:373  lt:0  rt:0  fl:0 
      [2] sc:37  lt:0  rt:0  fl:0 
      [3] sc:38  lt:0  rt:0  fl:0 
      [4] sc:36  lt:0  rt:0  fl:0 
    
    <Constraint Check> (all must be [OK])     -- 下面所有业务逻辑结果都必须为 OK 才行
     [transaction percentage]
            Payment: 43.37% (>=43.0%) [OK]    -- 支付成功次数(上述统计结果中 sc + lt)必须大于43.0%,否则结果为NG,而不是OK
       Order-Status: 4.30% (>= 4.0%) [OK]     --订单状态,其他同上
           Delivery: 4.42% (>= 4.0%) [OK]     -- 发货,其他同上
        Stock-Level: 4.19% (>= 4.0%) [OK]     -- 库存,其他同上
     [response time (at least 90% passed)]    -- 响应耗时指标必须超过90%通过才行
          New-Order: 98.94%  [OK]             -- 下面几个响应耗时指标全部 100% 通过
            Payment: 100.00%  [OK]
       Order-Status: 100.00%  [OK]
           Delivery: 100.00%  [OK]
        Stock-Level: 100.00%  [OK]
    
    <TpmC>
                     188.000 TpmC  -- TpmC结果值(每分钟事务数,该值是第一次统计结果中的新订单事务数除以总耗时分钟数,例如本例中是:372/2=186)
    

      

     
  • 相关阅读:
    HDU 4069 Squiggly Sudoku
    SPOJ 1771 Yet Another NQueen Problem
    POJ 3469 Dual Core CPU
    CF 118E Bertown roads
    URAL 1664 Pipeline Transportation
    POJ 3076 Sudoku
    UVA 10330 Power Transmission
    HDU 1426 Sudoku Killer
    POJ 3074 Sudoku
    HDU 3315 My Brute
  • 原文地址:https://www.cnblogs.com/kuku0223/p/8124999.html
Copyright © 2011-2022 走看看