我正在尝试运行 MySQL DBT2 Benchmark Tool,我已解压缩存档并运行以下命令:
./configure --with-mysql
make
make install
mkdir /tmp/dbt
datagen -w 3 -d /tmp/dbt --mysql
scripts/mysql/mysql_load_db.sh --path /tmp/dbt --mysql-path /usr/bin/mysql
scripts/run_mysql.sh --connections 20 --time 300 --warehouses 3
但得到以下输出:
...
Stage 3. Starting of the test. Duration of the test 300 sec
STARTING DRIVER COMMAND: /root/dbt2-0.37.50.3/src/driver -d 127.0.0.1 -l 300 -wmin 1 -wmax 3 -spread 1 -w 3 -sleep 300 -tpw 10 -outdir /root/output/14/driver -p 30000 -warmup 0 -cooldown 20 -intermediate_timer_resolution 0
Shutdown clients. Send TERM signal to 5154.
Shutdown driver. Send TERM signal to 5190.
Stage 4. Processing of results...
Response Time (s)
Transaction % Average : 90th % Total Rollbacks %
------------ ----- --------------------- ----------- --------------- -----
Delivery 0.00 N/A 0 0 100.00
New Order 0.00 N/A 0 0 100.00
Order Status 0.00 N/A 0 0 100.00
Payment 0.00 N/A 0 0 100.00
Stock Level 0.00 N/A 0 0 100.00
0.00 new-order transactions per minute (NOTPM)
0.0 minute duration
0 total unknown errors
0.00 rollback transactions
0 second(s) ramping up
scripts/run_mysql.sh: line 632: 5154 Killed nohup $CLIENT_COMMAND > $OUTPUT_DIR/client.out 2>&1
scripts/run_mysql.sh: line 632: 5190 Killed nohup $DRIVER_COMMAND > $OUTPUT_DIR/driver.out 2>&1
Test completed.
在执行过程中,SHOW PROCESSLIST
确实显示有 20 个客户端已连接,均处于休眠状态。
知道为什么不执行交易吗?
我已执行以下操作来重现您从 dbt2 看到的输出。
安装Centos6.4
通过 YUM 安装 MySQL 5.1.69
安装Innotop以实时查看所有查询和未结交易
像你一样跑板凳:
Innotop 仅显示 20 个活跃客户,但没有打开查询或交易
DBT2 提供了几个日志。在我用于测试的系统上,有一个主目录 /root/output,然后每次执行都有一个编号。
/root/output/N 其中 N 是执行编号。
在文件/root/output/3/client/error.log中,我找到了以下信息
我在整个日志中看到ROLLBACK INITIATED 。我还看到某些存储过程未安装,例如dbt2.payment
因此,我进一步查看,必须运行另一个脚本才能在 dbt2 数据库中创建存储过程。
这给出了以下输出:
你跑了吗
在您的服务器上加载存储过程?
加载 DBT2 的存储过程后,我再次运行 DBT2,这次我确实在 Innotop 的输出中看到了事务
我注意到,尽管正如你所做的那样,DBT2 的输出仍然到处都是 O,所以我将仓库的数量增加到 30 个。我的想法是没有足够的事务或活动来产生有用的结果
如您所见,DBT2 这次发回了适当的结果。