Yuque Archive
工作资料

Fabric 测试报告 - 第1版

一、环境说明

1. 硬件环境

Fabric 节点部署在3台 8核 16G 的虚拟机上,使用 Raft 共识。

压测工具和适配器部署在 32核 256G 的主机上(10.10.144.96)。

96 到 114 大概是千兆带宽。

2. 软件环境

压测工具

压测工具使用 apache-ab,经过实践它的压力可以达到预期的要求。

ab的执行脚本(test.sh):

交易的参数内容为空(test.json):

适配器收到的请求压力大概 15000 次/s 。

适配器

适配器分两部分,网关和 Fabric 客户端。网关(Tomcat)的具体参数为:

Fabric 客户端创建了连接 peer1 和 order1 的通道,并且所有交易都会发给 peer1 和 order1(也就是说压力会直接给到 10.10.144.114 的虚拟机)。

3. 交易类型说明

目前 Fabric 节点的成块条件是 4000 笔交易或者 3 秒钟。

测试交易为循环转账交易,从账户 from1to1from2to2,后面的数字依次增加。目前的配置是数字到 10000 后再回到 1 继续循环转账。转账金额固定为 1。

转账的签名使用 ed25519 加密。

二、测试前的硬件资源情况

114 (peer1、order1)

96(适配器、压测工具)

三、使用ab测试

测试前的块高度为 62,交易总数 20002(创建超级管理员1条 + 创建20000个账户 + 测试交易1条)。 具体数据可以查看附件:

测试结果:

测试结果的文本附件:

测试结束后的块高度:93,交易总数:120002。 数据附件:

TPS:1073 (ab自己统计的)

CTPS:1111

CTPS计算过程:

测试发起的第一笔交易为第63个块的第一笔交易,交易落块的时间戳为:1594437480229

测试发出的最后一笔交易为第93个块的最后一笔交易,落块时间戳为:1594437570132

一共 100000 笔交易,1594437570132 - 1594437480229 = 89903 ms

平均每秒钟落块 100000 / 90s = 1111 笔交易/s

硬件资源情况:

10.10.144.114 (Fabric 节点)

概览:

CPU使用率:

load数:

io:

带宽:

10.10.144.96 (压测工具、适配器)

概览:

CPU:

load数:

IO:

带宽:

四、使用 PolarBear 的第二次测试

PolarBear是一个第三方的测试工具,基于 Akka 提供的 Actor 模型,可以很好的提供足够的压力。PolarBear 可以可视化 TPS 的数据。

PloarBear 和适配器在同一个机器上,可能会稍微出现一点资源竞争的情况,TPS 比 ab 的结果略低。

测试参数:

TPS实时图:

带平均线的TPS图:

不确定导出的PDF效果如何,如果图片不清楚,可以访问在线文档,查看原图:https://www.yuque.com/docs/share/b4dc9623-c580-43b0-97af-dacfba006f05?# 《Fabric 测试报告 - 第1版》