tm-bench

Tendermint 区块链基准测试工具:

例如,如下所示:

  1. tm-bench -T 10 -r 1000 localhost:26657

将输出:

  1. Stats Avg StdDev Max Total
  2. Txs/sec 818 532 1549 9000
  3. Blocks/sec 0.818 0.386 1 9

快速启动

安装 Tendermint 这是目前的设置工作在 tendermint 的开发部门。请确保你正在做这件事。(如果没有,在 gopkg 中更新 tenderminttmlibs。使用主分支。)

然后运行:

  1. tendermint init
  2. tendermint node --proxy_app=kvstore
  1. tm-bench localhost:26657

最后一个命令位于单独的窗口中。

用法

  1. tm-bench [-c 1] [-T 10] [-r 1000] [-s 250] [endpoints]
  2. Examples:
  3. tm-bench localhost:26657
  4. Flags:
  5. -T int
  6. Exit after the specified amount of time in seconds (default 10)
  7. -c int
  8. Connections to keep open per endpoint (default 1)
  9. -r int
  10. Txs per second to send in a connection (default 1000)
  11. -s int
  12. Size per tx in bytes
  13. -v Verbose output

如何收集统计数据

这些统计数据是通过让每个连接在指定的时间内以指定的速率(或尽可能接近的速度)发送事务来获得的。在指定的时间之后,它遍历在该时间内创建的所有块。每秒的平均和 stddev 是在此基础上计算的,方法是按秒分组数据。

为了在每个连接中以指定的速率发送事务,我们循环处理事务的数量。如果速度太慢,循环会在一秒钟内停止。 如果太快了,我们就等到一秒钟结束。每秒事务数统计是根据块中的最终事务数计算的。

每个连接都通过两个独立的 go 协程处理。

开发

  1. make get_vendor_deps
  2. make test