数据库测试程序
执行测试程序,查看需要迁移的当前服务器资源消耗,模拟真实业务场景。
- 执行数据库压测脚本
使用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
运行成功会发现程序不断读写数据库,压测脚本用于模拟数据库业务持续进行数据的读写操作。
- 写入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表创建依此类推执行。
- 查看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 观察