鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

测试MySQL

  1. 登录MySQL数据库服务器,并创建一个名为tpcc的数据库。
    1
    2
    3
    4
    5
    6
    /usr/bin/mysql -uroot -p123456 -S /data/mysql/run/mysql.sock
    drop database tpcc;
    create database tpcc;
    show databases;
    use tpcc;
    show tables;
    
  2. 登录BenchmarkSQL客户端,并修改配置文件。
    1. 进入BenchmarkSQL的run目录,按实际情况修改配置文件。
      1
      2
      3
      cd /home/benchmarksql5.0-for-mysql/run
      cp props.conf my_mysql.properties
      vi my_mysql.properties
      
    2. 在编辑配置文件时,主要修改以下部分,其余部分通常使用默认值即可。
      • 导入数据参数:数据量warehouses,并发数loadWorkers。
      • 压力测试参数:执行时间runMins,并发数terminals。
      • runMins和runTxnsPerTerminal这两个参数指定了两种运行方式,前者是按照指定运行时间执行,以时间为标准;后者以指定每个终端的事务数为标准执行。两者不能同时生效,必须有一个设定为0。
      表1 数据库信息部分

      参数名称

      参数值

      说明

      conn

      192.168.222.120

      数据库服务器地址,以实际情况为准。

      3306

      MySQL数据库端口,以实际情况为准。

      tpcc

      数据库名称,以实际情况为准,本例中为tpcc。

      user

      root

      修改为创建数据库tpcc的账号。

      password

      123456

      修改为创建数据库tpcc的密码。

      warehouses

      1000

      初始化加载数据时,需要创建多少仓库的数据。例如200,标识创建200个仓库数据,每一个数据仓库的数据量大概是76823.04KB,可有少量的上下浮动,因为测试过程中将会插入或删除现有记录。

      loadworker

      100

      加载数据时,每次提交进程数。

      表2 程序执行的场景参数

      参数名称

      说明

      terminals

      终端数量,指同时有多少终端并发执行,表示并发程度。遍历值140,170,200。

      runTxnsPerTerminal

      每分钟每个终端执行的事务数。

      runMins

      执行多少分钟,例如15分钟。与terminals配合使用。

      limitTnxsPermin

      每分钟执行的事务总数。

      terminalWarehouseFixed

      用于指定终端和仓库的绑定模式,设置为true时可以运行4.x兼容模式,意思为每个终端都有一个固定的仓库。设置为false时可以均匀的使用数据库整体配置。

    3. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
  3. 登录BenchmarkSQL客户端,向MySQL数据库服务器导入数据,创建数据表,并初始化数据库。
    1. 在BenchmarkSQL的run目录下执行如下命令给文件赋予可执行权限。
      1
      chmod 777  *.sh
      

      如果已经赋予相关权限,不用重复操作。

    1. 加载数据。
      1
      ./runDatabaseBuild.sh my_mysql.properties
      

      创建表并初始化共9个表(bmsql_warehouse, bmsql_stock, bmsql_item, bmsql_order_line, bmsql_new_order, bmsql_history, bmsql_district, bmsql_customer,bmsql_oorder)以及1个配置表(bmsql_config)。

      • 如果导入数据完成后提示“Cannot locate SQL file for extraHistID”,不影响性能测试,忽略即可。
      • 如果导入报错如下,则执行vi my_mysql.properties打开文件,在文件中添加参数“serverTimezone=UTC”,然后重新执行./runDatabaseBuild.sh my_mysql.properties命令。
        1
        ERROR: The server time zone value 'EDT' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to       use a more specifc time zone value if you want to utilize time zone support.
        
  4. 登录BenchmarkSQL客户端,执行BenchmarkSQL程序对MySQL数据库服务器进行压力测试。
    1
    ./runBenchmark.sh my_mysql.properties
    

    执行结束后,取tpmC (NewOrders)的值作为测试指标。

    在数据库性能测试中,tpmC (NewOrders)是一个常用的性能指标,它衡量了在每分钟创建订单的事务数。tpmC (NewOrders)值越大,说明数据库服务器的交易处理能力越强,从而整体性能越高。

  5. 删除数据库和数据。
    1
    ./runDatabaseDestroy.sh my_mysql.properties