zoukankan      html  css  js  c++  java
  • 使用tpcc-mysql进行性能测试

    tpcc-mysql的github地址:https://github.com/Percona-Lab/tpcc-mysql

    tpcc-mysql源代码进行编译,服务器上需要安装有mysql

    git clone https://github.com/Percona-Lab/tpcc-mysql.git
    cd tpcc-mysql/src
    make

    可能会遇到如下错误:

    需要安装以下组件

    yum install mysql-devel
    yum install gcc

    make成功后,会在tpcc-mysql下生成两个命令行工具

    创建库

    # 本地
    mysqladmin -uroot -proot create tpcc1000

    # 远程
    mysqladmin -h192.168.0.1 -P3306 -uroot -proot create tpcc1000

    创建表

    # 本地
    mysql -uroot -proot -f tpcc1000 < create_table.sql

    # 远程
    mysql -h192.168.0.1 -P3306 -uroot -proot -f tpcc1000 < create_table.sql

    创建外键

    # 本地
    mysql -uroot -proot -S /tmp/mysql.sock tpcc100 < add_fkey_idx.sql

    #远程
    mysql -h192.168.0.1 -P3306 -uroot -proot -S /tmp/mysql.sock tpcc1000 < add_fkey_idx.sql

    加载数据

    -h 主机IP     -P 端口号     -u 用户名      -p 密码     -d 数据库名     -w仓库数量

    ./tpcc_load -h127.0.0.1 -P3306 -uroot -proot -dtpcc1000 -w100

    真实测试场景中,仓库数一般不建议少于 100个,视服务器硬件配置而定,如果是配备了SSD或者PCIE SSD这种高IOPS设备的话,建议最少不低于 1000个

    发起压测

    -h 主机IP     -P 端口号     -u 用户名      -p 密码     -d 数据库名     -w仓库数量     -c 并发数     -r 预热时间     -l 持续测试时间      -i 报告生成间隔时长      -f 生成的报告名

    ./tpcc_start -h 127.0.0.1 -P 3306 -d tpcc1000 -u root -p root -w 10 -c 64 -r 30 -l 120 -f tpcclog_201409211538_64_THREADS.log >> tpcc_noaid_2_20140921_64.log 2>&1

    统计结果

    ***************************************
    *** ###easy### TPC-C Load Generator ***
    ***************************************
    option h with value '127.0.0.1'
    option P with value '3306'
    option d with value 'tpcc1000'
    option u with value 'root'
    option p with value 'root'
    option w with value '10'
    option c with value '64'
    option r with value '30'
    option l with value '120'
    option f with value 'tpcclog_201409211538_64_THREADS.log'
    <Parameters>
         [server]: 127.0.0.1
         [port]: 3306
         [DBname]: tpcc1000
           [user]: root
           [pass]: root
      [warehouse]: 10
     [connection]: 64
         [rampup]: 30 (sec.)
        [measure]: 120 (sec.)
    
    RAMP-UP TIME.(30 sec.)
    
    --
    初始化信息
    
    MEASURING START.
    
      10, trx: 154, 95%: 3408.202, 99%: 4244.400, max_rt: 4955.159, 159|7908.489, 17|3133.168, 13|6049.083, 16|11051.597
      20, trx: 141, 95%: 2954.709, 99%: 3978.652, max_rt: 5321.916, 125|7097.855, 13|3535.278, 16|5067.906, 15|8279.009
      30, trx: 137, 95%: 3216.882, 99%: 4579.696, max_rt: 4651.545, 150|5517.847, 14|2888.488, 12|5839.525, 10|9747.291
      40, trx: 148, 95%: 2806.432, 99%: 3772.209, max_rt: 4188.561, 151|5264.642, 15|2234.885, 15|5447.216, 17|9525.448
      50, trx: 140, 95%: 3708.392, 99%: 4455.295, max_rt: 4620.094, 131|6174.815, 15|2714.639, 13|6578.676, 15|9311.568
      60, trx: 139, 95%: 3455.456, 99%: 4072.641, max_rt: 4789.693, 137|7616.626, 13|2813.756, 12|5629.434, 13|11790.620
      70, trx: 145, 95%: 3360.588, 99%: 3785.784, max_rt: 4194.451, 156|6506.522, 14|2047.294, 15|7115.730, 14|11013.240
      80, trx: 145, 95%: 3394.965, 99%: 4038.649, max_rt: 4117.499, 149|7468.766, 15|1926.932, 15|7143.620, 16|7610.500
      90, trx: 132, 95%: 4621.007, 99%: 5785.856, max_rt: 6406.660, 111|4856.231, 12|1691.698, 15|6805.226, 18|7287.891
     100, trx: 131, 95%: 4424.727, 99%: 5655.715, max_rt: 5681.746, 142|9643.270, 15|2487.533, 12|7005.748, 11|6326.052
     110, trx: 122, 95%: 3222.664, 99%: 3983.419, max_rt: 4084.562, 130|6793.215, 12|2140.033, 12|6742.681, 10|8313.380
     120, trx: 141, 95%: 4088.520, 99%: 5306.367, max_rt: 6080.581, 132|7764.922, 12|2306.241, 15|9595.797, 13|10459.830

    -- 以逗号分隔,共6列
    -- 第一列,第N次10秒
    -- 第二列,总成功执行压测的次数(总推迟执行压测的次数):90%事务的响应时间|本轮测试最大响应时间
    -- 第三列,新订单业务成功执行次数(推迟执行次数):90%事务的响应时间|本轮测试最大响应时间
    -- 第四列,支付业务的结果,后面几个的意义同上
    -- 第五列,发货业务的结果,后面几个的意义同上
    -- 第六列,库存业务的结果,后面几个的意义同上

    STOPPING THREADS................................................................
    
    <Raw Results>
      [0] sc:0 lt:1675  rt:0  fl:0 avg_rt: 2172.2 (5)
      [1] sc:2 lt:1671  rt:0  fl:0 avg_rt: 2191.9 (5)
      [2] sc:6 lt:161  rt:0  fl:0 avg_rt: 1032.8 (5)
      [3] sc:0 lt:165  rt:0  fl:0 avg_rt: 5431.0 (80)
      [4] sc:0 lt:168  rt:0  fl:0 avg_rt: 6932.6 (20)
     in 120 sec.

    -- 第0行 New-Order,新订单业务成功(success,简写sc)次数,延迟(late,简写lt)次数,重试(retry,简写rt)次数,失败(failure,简写fl)
    -- 第1行 Payment,支付业务统计,其他同上
    -- 第2行 Order-Status,订单状态业务统计,其他同上
    -- 第3行 Delivery,发货业务统计,其他同上
    -- 第4行 Stock-Level,库存业务统计,其他同上

    <Raw Results2(sum ver.)>
      [0] sc:0  lt:1675  rt:0  fl:0
      [1] sc:2  lt:1671  rt:0  fl:0
      [2] sc:6  lt:161  rt:0  fl:0
      [3] sc:0  lt:165  rt:0  fl:0
      [4] sc:0  lt:168  rt:0  fl:0
    
    <Constraint Check> (all must be [OK])
     [transaction percentage]
           Payment: 43.48% (>=43.0%) [OK]
       Order-Status: 4.34% (>= 4.0%) [OK]
           Delivery: 4.29% (>= 4.0%) [OK]
        Stock-Level: 4.37% (>= 4.0%) [OK]
     [response time (at least 90% passed)]
          New-Order: 0.00%  [NG] *
            Payment: 0.12%  [NG] *
       Order-Status: 3.59%  [NG] *
           Delivery: 0.00%  [NG] *
        Stock-Level: 0.00%  [NG] *
    
    <TpmC>
                     837.500 TpmC                    -- TpmC结果值


    Payment        -- 支付成功次数(上述统计结果中 sc + lt)必须大于43.0%,否则结果为NG,而不是OK
    Order-Status   -- 订单状态,其他同上
    Delivery       -- 发货,其他同上
    Stock-Level    -- 库存,其他同上
    response time  -- 响应耗时指标必须超过90%通过才行 下面几个响应耗时指标全部 100% 通过


  • 相关阅读:
    设计模式—适配器模式
    设计模式—策略模式 状态模式
    设计模式——装饰模式和代理模式
    C++常考算法
    ModelState.AddModelError使用
    Json
    ref与out
    三层与mvc
    新的方法(Set<T>)实现mvc的crud
    【程序45】
  • 原文地址:https://www.cnblogs.com/maobuji/p/8337662.html
Copyright © 2011-2022 走看看