AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 47111
Accepted
BenMorel
BenMorel
Asked: 2013-07-27 14:15:35 +0800 CST2013-07-27 14:15:35 +0800 CST 2013-07-27 14:15:35 +0800 CST

以 0.00 NOTPM 运行 DBT2 测试结果

  • 772

我正在尝试运行 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 个客户端已连接,均处于休眠状态。

知道为什么不执行交易吗?

mysql benchmark
  • 1 1 个回答
  • 1535 Views

1 个回答

  • Voted
  1. Best Answer
    Craig Efrein
    2013-07-31T07:44:02+08:002013-07-31T07:44:02+08:00

    我已执行以下操作来重现您从 dbt2 看到的输出。

    1. 安装Centos6.4

    2. 通过 YUM 安装 MySQL 5.1.69

    3. 安装Innotop以实时查看所有查询和未结交易

    像你一样跑板凳:

    [root@centos-cef dbt2-0.37.50.3]# scripts/run_mysql.sh --connections 20 --terminals 5 --time 300 --warehouses 3 --verbose
    

    Innotop 仅显示 20 个活跃客户,但没有打开查询或交易

    DBT2 提供了几个日志。在我用于测试的系统上,有一个主目录 /root/output,然后每次执行都有一个编号。

    /root/output/N 其中 N 是执行编号。

    在文件/root/output/3/client/error.log中,我找到了以下信息

    Tue Jul 30 16:57:23 2013
    Microseconds : 998724
    tid:-1511446784 mysql/dbc_payment.c:32
    mysql reports SQL STMT: stmt ERROR: 1305 PROCEDURE dbt2.payment does not exist
    Tue Jul 30 16:57:23 2013
    Microseconds : 998753
    tid:-1511446784 mysql/dbc_common.c:97
    ROLLBACK INITIATED
    
    Tue Jul 30 16:57:28 2013
    Microseconds : 859693
    tid:-1511713024 mysql/dbc_new_order.c:88
    mysql reports: SQL: call new_order(2, 5, 984, 1, 9, 90056, 2, 8, 47872, 2, 3, 48592, 2, 7, 21925, 2,                                 7, 96574, 2, 5, 53239, 2, 8, 30640, 2, 4, 39619, 2, 10, 86015, 2, 8,                                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,                          0, 0, @rc),  ERROR: 1305 PROCEDURE dbt2.new_order does not exist
    Tue Jul 30 16:57:28 2013
    Microseconds : 859735
    tid:-1511713024 mysql/dbc_common.c:97
    ROLLBACK INITIATED
    

    我在整个日志中看到ROLLBACK INITIATED 。我还看到某些存储过程未安装,例如dbt2.payment

    因此,我进一步查看,必须运行另一个脚本才能在 dbt2 数据库中创建存储过程。

    scripts/mysql/mysql_load_sp.sh --database dbt2 --client-path /usr/bin/
    

    这给出了以下输出:

    Load SP: delivery
    Load SP: new_order
    Load SP: new_order_2
    Load SP: order_status
    Load SP: payment
    Load SP: stock_level
    

    你跑了吗

    scripts/mysql/mysql_load_sp.sh --database dbt2 --client-path /usr/bin 
    

    在您的服务器上加载存储过程?

    加载 DBT2 的存储过程后,我再次运行 DBT2,这次我确实在 Innotop 的输出中看到了事务

    [RO] InnoDB Txns (? for help)                             localhost, 2h7m, InnoDB 1s :-), 765.68 QPS, 22/0/0 con/run/cac thds, 5.1.69
    
    History  Versions  Undo  Dirty Buf  Used Bufs  Txns  MaxTxnTime  LStrcts
          6       102  0 0       1.56%     99.80%    21       00:00         
    
    ID   User  Host       Txn Status  Time   Undo  Query Text
    217  root  localhost  COMMITTED   00:00     0  COMMIT    
    

    我注意到,尽管正如你所做的那样,DBT2 的输出仍然到处都是 O,所以我将仓库的数量增加到 30 个。我的想法是没有足够的事务或活动来产生有用的结果

    scripts/run_mysql.sh --connections 20 --time 300 --warehouses 30 --verbose
    
    Stage 4. Processing of results...
                             Response Time (s)
     Transaction      %    Average :    90th %        Total        Rollbacks      %
    ------------  -----  ---------------------  -----------  ---------------  -----
        Delivery   3.32      0.004 :     0.001          136                0   0.00
       New Order  44.59      0.027 :     0.095         1826             1654  90.58
    Order Status   4.20      0.002 :     0.001          172                0   0.00
         Payment  42.86      0.007 :     0.014         1755                0   0.00
     Stock Level   3.57      0.010 :     0.000          146                0   0.00
    

    如您所见,DBT2 这次发回了适当的结果。

    • 6

相关问题

  • 是否有任何 MySQL 基准测试工具?[关闭]

  • 我在哪里可以找到mysql慢日志?

  • 如何优化大型数据库的 mysqldump?

  • 什么时候是使用 MariaDB 而不是 MySQL 的合适时机,为什么?

  • 组如何跟踪数据库架构更改?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    授予用户对所有表的访问权限

    • 5 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    pedrosanta 使用 psql 列出数据库权限 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve