### TCPP-Mysql 使用详解 #### 一、简介 TCPP-Mysql 是一套用于测试 MySQL 数据库性能的工具集,特别适用于对 MySQL 进行事务处理能力(TPC-C)基准测试。通过模拟一系列标准的数据库操作场景,该工具可以帮助评估数据库在高并发情况下的性能表现。 #### 二、安装与配置 ##### 1. 创建表结构 在进行性能测试之前,首先需要创建必要的表结构。这一步骤可以通过执行 `create_table.sql` 脚本来完成: ```bash mysqltpcc100 < create_table.sql ``` 这里的 `mysqltpcc100` 可能是自定义的脚本或命令,用于读取 SQL 文件并执行其中的语句来创建表结构。 ##### 2. 配置 MySQL Socket 接着,需要确保 MySQL 的 socket 文件正确地被引用: ```bash mkdir -p /var/lib/mysql ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock ``` 上述命令会创建一个名为 `/var/lib/mysql/mysql.sock` 的符号链接指向实际的 MySQL socket 文件 `/tmp/mysql.sock`,这是为了确保后续的性能测试脚本能正确连接到 MySQL 数据库服务。 ##### 3. 加载数据 接下来需要加载测试数据,这通常涉及到大量的数据记录,以模拟真实环境中的数据量: ```bash ./tpcc_load localhost:3366 tpcc100 root "" 100 ./tpcc_load 127.0.0.1:3366 tpcc100 100 ``` 这里通过 `./tpcc_load` 命令将测试数据加载到名为 `tpcc100` 的数据库中。`localhost:3366` 和 `127.0.0.1:3366` 指的是 MySQL 服务的地址及端口,而 `root` 是登录数据库的用户名,`""` 表示密码为空,`100` 表示要加载的数据仓库数量。 #### 三、启动测试 完成数据准备后,就可以开始运行 TPC-C 测试了。 ##### 1. 参数解析 启动测试时,需要指定一系列参数来控制测试的行为: ```bash ./tpcc_start -h localhost -P 3366 -d tpcc100 -u root -w 10 -c 32 -r 10 -l 1080 -f tpcc100 ./tpcc_start -h localhost -P 3366 -d tpcc100 -u root -p '' -w 100 -c 32 -r 120 -l 3600 -f tpcc_mysql_20140620 ``` - `-h localhost`:指定 MySQL 服务器的主机名。 - `-P 3366`:指定 MySQL 服务器的端口号,默认为 3306,这里设置为 3366。 - `-d tpcc100`:指定要使用的数据库名称。 - `-u root`:指定登录数据库的用户名。 - `-p ''`:指定登录密码,此处为空。 - `-w 10` 或 `-w 100`:指定要使用的仓库数量。 - `-c 32`:指定并发连接的数量。 - `-r 10` 或 `-r 120`:指定预热时间(单位秒),即在正式测试前的预备时间。 - `-l 1080` 或 `-l 3600`:指定运行时间(单位秒)。 - `-f tpcc100` 或 `-f tpcc_mysql_20140620`:指定报告文件的名称。 ##### 2. 解释示例输出 测试完成后,会生成一系列的输出结果,如: ``` [0]sc:1297 lt:3 rt:11633056 fl:5815 [1]sc:1238 lt:0 rt:11754921 fl:5880 [2]sc:150 lt:0 rt:1123256 fl:563 [3]sc:711 lt:0 rt:0 fl:0 [4]sc:120 lt:5 rt:1172598 fl:586 ``` - `sc`:成功提交的事务数量。 - `lt`:事务的平均响应时间(单位毫秒)。 - `rt`:总的响应时间(单位毫秒)。 - `fl`:失败的事务数量。 另外,还有针对不同事务类型的百分比统计,例如: - `Payment`: 支付事务的百分比。 - `Order-Status`: 订单状态查询事务的百分比。 - `Delivery`: 配送事务的百分比。 - `Stock-Level`: 库存水平事务的百分比。 还会给出 TpmC (Transactions per Minute, C) 的数值,用以衡量每分钟内完成的事务数量,它是评估数据库性能的关键指标之一。 ##### 3. 其他命令选项 除了上述提到的基本参数外,`./tpcc_start` 命令还支持更多选项,可通过 `./tpcc_start --help` 查看帮助文档获取更全面的信息: ```bash tpcc_start -h server_host -P port -d database_name -u mysql_user -p mysql_password -w warehouses -c connections -r warmup_time -l running_time -i report_interval -f report_file ``` - `-i report_interval`:指定报告的生成间隔(单位秒)。 - `-f report_file`:指定报告文件的路径和名称。 #### 四、注意事项 - **MySQL Socket**: 如果 MySQL 的配置中指定了使用 TCP/IP 方式连接而不是默认的 Unix Socket,则需相应修改配置或命令。 - **并发设置**: 并发连接数量 (`-c`) 的选择需要根据实际情况调整,过高的并发可能会导致资源耗尽或数据库服务不稳定。 - **预热时间**: 预热时间 (`-r`) 的设定应足够长,以便系统达到稳定状态后再开始正式测试。 - **运行时间**: 运行时间 (`-l`) 应保证足够长,以便获得可靠的性能数据。 通过上述步骤,我们可以有效地利用 TCPP-Mysql 工具来进行 MySQL 数据库的性能测试,并根据测试结果优化数据库配置,提升系统整体性能。
mysql tpcc100 < create_table.sql
mkdir -p /var/lib/mysql
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
./tpcc_load localhost:3366 tpcc100 root "" 100
./tpcc_load 127.0.0.1:3366 tpcc100 100
./tpcc_start -hlocalhost -P3366 -dtpcc100 -uroot -w10 -c32 -r10 -l1080 -f tpcc100
./tpcc_start -hlocalhost -P3366 -d tpcc100 -u root -p '' -w 100 -c 32 -r 120 -l 3600 -ftpcc_mysql_20140620
#使用tpcc_start 进行16个线程的测试,热身时间为60秒, 测试时间为10分钟, 可根据自己需要调整
几个选项稍微解释下
-w 指定仓库数量
-c 指定并发连接数
-r 指定开始测试前进行warmup的时间,进行预热后,测试效果更好
-l 指定测试持续时间
-I 指定生成报告间隔时长
- 粉丝: 1
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助