更新时间:2022-10-12 GMT+08:00
分享

数据库测试程序

执行测试程序,查看需要迁移的当前服务器资源消耗,模拟真实业务场景。

  1. 执行数据库压测脚本

    使用MySQL命令登录数据库,并创建测试数据库“loadtest”,用弹性云服务器ECS的私网IP替换命令中的【<mysql-ip>】命令如下:

    mysql -u root -h <mysql-ip> -p -e "create database loadtest"

    使用sysbench命令导入测试数据到“loadtest”数据库;用云服务器的密码替换命令中的【<password>,用弹性云服务器ECS的私网IP替换命令中的【<mysql-ip>】,命令如下:

    sysbench --test=/usr/share/sysbench/tests/include/oltp_legacy/oltp.lua --db-driver=mysql --mysql-db=loadtest --mysql-user=root --mysql-password='<password>' --mysql-port=3306 --mysql-host=<mysql-ip> --oltp-tables-count=10 --oltp-table-size=10000 --num-threads=20 prepare

    执行测试【保持命令行开启】,用云服务器密码替换命令中的【<password>,用弹性云服务器ECS的私网IP替换命令中的【<mysql-ip>】,命令如下:

    sysbench --test=/usr/share/sysbench/tests/include/oltp_legacy/insert.lua --db-driver=mysql --mysql-db=loadtest --mysql-user=root --mysql-password='<password>'  --mysql-port=3306 --mysql-host=<mysql-ip> --oltp-tables-count=10 --oltp-table-size=1000 --max-time=3600 --max-requests=0 --num-threads=10 --report-interval=3 --rate=20 --forced-shutdown=1 run

    运行成功会发现程序不断读写数据库,压测脚本用于模拟数据库业务持续进行数据的读写操作。

  2. 写入10张表,从Sheet 1 到Sheet 10

    执行以下代码,在刚建的MySQL数据库中创建10张数据表,表命名为Sheet1,Sheet2,Sheet3……,Sheet10

    CREATE TABLE IF NOT EXISTS `Sheet1 `(
    ` Sheet1_id` INT UNSIGNED AUTO_INCREMENT,
    ` Sheet1_title` VARCHAR(100) NOT NULL,
    ` Sheet1_author` VARCHAR(40) NOT NULL,
    `submission_date` DATE,
    PRIMARY KEY ( `Sheet1_id` )
    )ENGINE=InnoDB DEFAULT CHARSET=utf8;

    完成Sheet1创建后,将以上代码中的表名修改为Sheet2再执行,完成Sheet2表创建。Sheet3到Sheet10表创建依此类推执行。

  3. 查看CPU、IO情况

    新打开一个命令行窗口,观察此时CPU、IO的使用情况,方便与后面执行数据在线迁移任务时的CPU、IO使用情况做对比(3.1.10步骤四)。输入以下命令登录云服务器:

    代码:ssh root@EIP

    请使用以华为云账户名命名的弹性云服务器ECS的公网IP替换命令中的【EIP】。

    执行以下命令查看CPU使用情况,可以看到数据库CPU占比,如下图:

    代码:top
    图1 执行命令

    查看IO情况(CTRL+C退出top命令),执行命令如下:

    iostat -d vda vdb -m 1 10

    观察vda的IO变化情况(单位为:m/s),如下图所示(观察完成之后可以CTRL+C退出):

    图2 观察

相关文档