用Caliper做Hyperledger Fabric性能测试

本文介绍了使用Caliper对Hyperledger Fabric进行性能测试的情况。测试结果显示,单个client时,Caliper的性能较低,但随着client数量增加,可达到200TPS。然而,持续增加client会导致平均延迟上升。关于Caliper的rate控制器,实验发现unfinished_per_client参数对性能有微调作用。总结来说,使用Caliper时需要根据测试结果调整方案以获取最佳性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

Caliper性能很差么?

Client可以无限增加么?

Calliper的rate?

补充一个结论


最近用Caliper测试了以下Hpyerledger Fabric的性能,测试环境用本地的byfn脚本

作为饭后闲谈,这里我们并不去探究如何提高tps,以及代码的角度为什么会有这样的区别。

话不多说,代码:

https://github.com/SamYuan1990/FabriccaliperSample

Caliper性能很差么?

从观察到的结果来看,

如果我们仅仅用一个client发起交易的tx,那么其性能相对于https://github.com/guoger/stupid.git 直接通过GRPC发起请求的对比来看会低,

那么,真的是caliper用nodejs,以及fabric nodejs sdk的性能很低么?

我们增加client的数量,可以看到Caliper也可以达到200TPS的。

Item TPS
Caliper 1 client 56.6
stupid

231

Caliper 10 client 194.3
### Hyperledger Fabric 性能测试 #### 测试方法与工具 为了进行全面的性能评估,通常采用多种方式来衡量Hyperledger Fabric的表现。一种常见的法是编写专门针对Fabric特性的基准测试(benchmark)。这些测试遵循特定的标准和约定[^1]。 对于具体的性能指标测量,可以利用Caliper这样的开源框架来进行自动化测试。Caliper支持多个区块链平台,其中包括Hyperledger Fabric,并能够提供详细的吞吐量、延迟等方面的统计数据[^4]。 另外,在执行任何类型的负载之前,确保已经按照官方指南正确设置了开发环境并启动了必要的服务组件,比如通过Docker容器化的方式来运行整个网络实例[^2]。 #### 编写Benchmark代码示例 当准备就绪之后,可以根据业务逻辑创建相应的智能合约以及客户端应用程序接口(API),并将它们集成到性能测试方案之中。下面是一个简单的Go语言编写的Benchmark函数例子: ```go package main import ( "testing" ) func BenchmarkChaincode(b *testing.B) { for i := 0; i < b.N; i++ { // 调用链码操作, 如invoke或query } } ``` 此段代码展示了如何定义一个名为`BenchmarkChaincode`的方法用于模拟调用链码的操作次数(`b.N`),从而帮助了解不同场景下的响应时间和资源消耗情况。 #### 结果分析 完成一系列预定的工作负荷后,收集来自各个节点的日志信息和其他监控数据源,以便进一步解析系统的整体表现特征。重点考察以下几个方面: - **交易处理速度**:每秒可成功提交多少笔事务; - **确认时间**:从发起请求至收到回复所需的时间长度; - **CPU/内存利用率**:各主机上的硬件资源占用率变化趋势。 通过对上述各项数值的变化规律加以研究,可以识别出潜在瓶颈所在位置,并据此调整配置参数或者优化程序设计以提高效率。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值