用Caliper做Hyperledger Fabric性能测试

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

目录

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的。

ItemTPS
Caliper 1 client56.6
stupid

231

Caliper 10 client194.3

Client可以无限增加么?

我们把client增加到多个看一下结果

ItemTPS
Caliper 10 client194.3
Caliper 15 client

191.4

Caliper 20 client176.8
Caliper 30 client130.1

我们可以看到随着client的增加,tps并不是无限增高的,Avg Latency不断提高。https://github.com/SamYuan1990/FabriccaliperSample/blob/master/result.md

 

Calliper的rate?

目前我们都是用的fixed-rate, 那么fixed-feedback-rate,fixed-backlog中unfinished_per_client的选项呢?

从试验结果来看,个人感觉是unfinished_per_client是对于性能测试进行微调。正如https://hyperledger.github.io/caliper/vLatest/rate-controllers/中描述的那样

“100 unfinished transactions for each client”

允许每个client有多少个未完成的请求的样子。如果这个值小于send rate,那么发送的tps就会低于send rate。如果大于等于,那么这里tps就会略高于未设置的fixed-rate。

 

补充一个结论

使用cliaper做性能测试时,需要根据测试结果,谨慎的优化测试方案。来得到相对好的性能。

 

Hyperledger Fabric性能测试相关文章总结(个人向)

https://blog.csdn.net/oe1019/article/details/106445904

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值