TPCC测试

压力测试是指在MySQL上线前,需要进行大量的压力测试,从而达到交付的标准。压力测试不仅可以测试MySQL服务的稳定性,还可以测试出MySQL和系统的瓶颈。

TPCC测试:Transaction Processing Performance Council,要熟练使用

TPC是一系列事务处理和数据库基准测试的规范。其中TPC-C是针对OLTP的基准测试模型,一方面可以衡量数据库的性能,另一方面可以衡量硬件性价比,也是广泛应用并关注的一种测试模型。

TPC-C模型是以一个在线零售业为例,设计的一种模型。具体架构如下所示:

 

TPCC测试_第1张图片
 

 

TPC-C测试模型给基准测试提供了一种统一的测试标准,并非实际应用系统中的真实测试结果,但通过测试结果,可以大体观察出MySQL数据库服务稳定性、性能以及系统性能等一系列问题。TPC-C仅仅是一个测试模型,而在实际测试中,需要参考和使用一些测试工具,对系统和MySQL数据库进行压力测试、稳定性测试。

 

1.安装bzr工具

[root@mysql1 /]# yum install bzr

2.下载tpcc-mysql

[root@mysql1 /]# bzr branch lp:~percona-dev/perconatools/tpcc-mysql

3.编译安装tpcc-mysql

[root@mysql1 /]# export PATH=/usr/local/mysql/bin:$PATH

[root@mysql1 /]# cd tpcc-mysql/src

[root@mysql1 src]# make

4.创建库

[mysql@mysql1 ~]$ mysqladmin -usystem -p123456 -S /data/mysqldata/3306/mysql.sock create tpcc

5.创建表

[mysql@mysql1 ~]$ mysql -usystem -p123456 -S /data/mysqldata/3306/mysql.sock tpcc < /tpcc-mysql/create_table.sql

6.添加外键

[mysql@mysql1 ~]$ mysql -usystem -p123456 -S /data/mysqldata/3306/mysql.sock tpcc < /tpcc-mysql/add_fkey_idx.sql

7.加载数据

tpcc 默认会读取 /var/lib/mysql/mysql.sock 这个socket位置,因此如果你的socket不在相应路径的话,就需要做个软连接

[root@mysql1 ~]# ln -s /data/mysqldata/3306/mysql.sock /var/lib/mysql/mysql.sock

[root@mysql1 ~]# ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64

如果出现错误,尝试上面的步骤

[mysql@mysql1 ~]$ /tpcc-mysql/tpcc_load localhost tpcc system "123456" 10

*************************************

*** ###easy### TPC-C Data Loader  ***

*************************************

<Parameters>

     [server]: localhost

     [port]: 3306

     [DBname]: tpcc

       [user]: system

       [pass]: 123456

  [warehouse]: 10

TPCC Data Load Started...

Loading Item

.................................................. 5000

.................................................. 10000

.................................................. 15000

...DATA LOADING COMPLETED SUCCESSFULLY.

8.进行测试

[mysql@mysql1 ~]$ /tpcc-mysql/tpcc_start -h localhost -d tpcc -u system -p "123456" -w 1 -c 10 -r 10 -l 20 -f /home/mysql/tpcc_mysql.log -t /home/mysql/tpcc_mysql.rtx

-h:测试主机

-d:测试的数据库

-u:测试的用户

-p:测试用户的密码

-w:测试的warehouse

-c:测试的连接线程数

-r:预热时间,warmup_time,以秒为单位,默认是10秒,目的是为了将数据加载到内存

-l:测试时间,默认为20

-ireport_interval指定生成报告的间隔时间

-freport_file将测试中各项操作的记录输出到指定文件内保存

-ttrx_file输出更详细的操作信息到指定文件内保存

下面是返回结果:

***************************************

*** ###easy### TPC-C Load Generator ***

***************************************

option h with value 'localhost'

option d with value 'tpcc'

option u with value 'system'

option p with value '123456'

option w with value '1'

option c with value '10'

option r with value '10'

option l with value '20'

option f with value '/home/mysql/tpcc_mysql.log'

option t with value '/home/mysql/tpcc_mysql.rtx'

<Parameters>

     [server]: localhost

     [port]: 3306

     [DBname]: tpcc

       [user]: system

       [pass]: 123456

  [warehouse]: 1

 [connection]: 10

     [rampup]: 10 (sec.)

    [measure]: 20 (sec.)

RAMP-UP TIME.(10 sec.)

 

MEASURING START.

  10, 686(0):2.044|3.593, 684(0):0.487|1.325, 68(0):0.136|0.212, 68(0):2.060|2.095, 69(0):5.817|6.441

  20, 676(0):1.508|2.585, 679(0):0.352|1.618, 67(0):0.140|0.294, 68(0):1.585|1.762, 67(0):4.154|5.968

分为6项,依次为操作时间()、创建订单、订单支付、查询订单、发货以及查询库存

 

STOPPING THREADS..........

 

<Raw Results>

  [0] sc:1362  lt:0  rt:0  fl:0

  [1] sc:1363  lt:0  rt:0  fl:0

  [2] sc:135  lt:0  rt:0  fl:0

  [3] sc:136  lt:0  rt:0  fl:0

  [4] sc:136  lt:0  rt:0  fl:0

 in 20 sec.

<Raw Results2(sum ver.)>

  [0] sc:1362  lt:0  rt:0  fl:0

  [1] sc:1363  lt:0  rt:0  fl:0

  [2] sc:135  lt:0  rt:0  fl:0

  [3] sc:136  lt:0  rt:0  fl:0

  [4] sc:136  lt:0  rt:0  fl:0

<Constraint Check> (all must be [OK])

 [transaction percentage]

        Payment: 43.52% (>=43.0%) [OK]

   Order-Status: 4.31% (>= 4.0%) [OK]

       Delivery: 4.34% (>= 4.0%) [OK]

    Stock-Level: 4.34% (>= 4.0%) [OK]

 [response time (at least 90% passed)]

      New-Order: 100.00%  [OK]

        Payment: 100.00%  [OK]

   Order-Status: 100.00%  [OK]

       Delivery: 100.00%  [OK]

    Stock-Level: 100.00%  [OK]

<TpmC> 

                 4086.000 TpmC  每分钟能够处理的订单数量

 

 

你可能感兴趣的:(测试)