火星链 火星链
Ctrl+D收藏火星链
首页 > XRP > 正文

CON:区块链性能测试与优化-上篇

作者:

时间:1900/1/1 0:00:00

大纲

本篇文章目的是通过具体示例,介绍完整的性能项目过程,具体内容介绍区块链性能测试中使用的:1.基本概念2.常用工具3.性能调优的常见情况这3块内容涵盖的内容非常多,每一个内容都有很多书籍和文章介绍,详细的内容不会出现在本文中。基本概念

区块链的性能测试,方法论上与传统的性能测试没有不同。性能测试有很多混乱的概念,这里我列出本文描述概念做一些定义。性能测试的定义

性能测试是对系统或者服务的性能指标建立监控策略,在特定场景下执行测试,分析判断性能瓶颈并调优,最终得出性能结果来评估系统或者服务的性能指标是否满足既定值。这里结合cosmos-sdk的simapp区块链来解释。1.需要明确指标,一般指两类指标:技术指标、业务指标。技术指标一般是TPS,响应时间,资源利用率,对应到区块链一般是指每秒可以处理多少笔交易?这些交易的响应时间或者统计结果是多少?在这种情况下系统使用的资源处于什么状态?期望满足的业务指标,应该来源于生产环境统计,以cosmos-sdk的生产应用cosmos-hub为例,其现阶段出块时间大约6秒,每个区块中的交易数大多数小于10。期望的业务指标设定为TPS为100是较为合理的。。2.测试模型:是真实场景的抽象,描述业务模型是什么样的。以cosmos-hub为例大致就是,分布在全球的区块链节点,在验证者节点约500个,活跃验证者节点约为200的情况下处理交易。测试时可以按比例抽象实际情况。3.测试方案:包括测试环境,测试数据,测试模型,性能指标等。对比区块链系统的测试,就是确定测试架构,准备好如1000个用户,每个用户余额1000stake这样的内容。4.需要有监控:监控的对象有压力机、区块链节点、其他如负载均衡服务器等。云原生时代的监控一般是Kubernetes+Prometheus+Grafana。5.需要测试条件:硬件环境,测试执行策略等。例如:4C8G,前60秒,每秒增加10个线程。6.需要有场景:指性能场景,正式化的描述是:在既定的环境、既定的数据、既定的执行策略、既定的监控之下,执行性能脚本,同时观察系统各层级的性能状态参数变化,并实时判断分析场景是否符合预期。性能场景,有时被称为测试用例其实是不对的。7.要有结果报告:报告内容当然就是实际的指标数据。性能场景分类

中电普华:发布新能源云区块链碳存证场景 赋能湖州双碳数字化:9月23日消息,国网信通股份公司北京中电普华信息技术有限公司承建的新能源云碳存证数字场景在会上首次完成了上线发布,为湖州双碳数字化高质量发展赋能。中电普华从新能源源端出发,依托区块链技术首次实现从企业绿电生产、绿电碳减排核算、碳交易流转等各个关键环节信息的全程链上留痕,在链上构建完整的碳资产数据链条,充分发挥区块链具有去中心化多点共识,开放透明可追溯特性,为第三方碳核算机构、政府机构及用户提供统一可信的数据查验服务,提升用户对碳减排可信数据的认知度和满意度。(电网头条)[2021/9/23 17:00:28]

1.基准性能场景:做单交易/接口的容量,为混合容量做准备。2.容量性能场景:混合容量测试是因为线上真实场景就是由不同的业务组成的,所以由这些业务按照不同并发比例发起梯度压测就是混合容量测试场景。3.稳定性性能场景:核心就是时长,在长时间的运行之下,观察系统的性能表现。这个时长的设置,应该来源于运维周期。4.异常性能场景:在强压力之下,模拟异常。重要的性能指标

性能测试的指标有很多,比如:1.RT,ResponseTime2.HPS,HitsPerSecond3.TPS,TransactionsPerSecond,这里的Transactions在传统的应用中一般称为”事务“,在区块链领域指”交易“4.QPS,QueriesPerSecond5.PV,PageView6.Throughput7.IOPS,Input/OutputOperationsPerSecond比较重要的指标有资源使用率、吞吐量、响应时间,服务提供方比较关心前两者,用户更更新后者。关于这些指标的一般情况引用PerformanceTestingMethodology(http://hosteddocs.ittoolbox.com/questnolg22106java.pdf)中的经典图来说明,实际情况可能不同。图中定义了3线3区域3状态,这个图值得多看看,能够大致理解指标简的关系。1.3线:Utilization,Throughput,ResponseTime2.3区域:LightLoad,HeavyLoad,BuckleZone3.3状态:ResourceSaturated,ThroughputFalling,EndUsersEffected

东南亚多国区块链和数字资产协会组建东盟区块链联盟:4月23日消息,东南亚多国区块链和数字资产协会,包括印尼、新加坡、菲律宾、马来西亚纳闽、泰国以及澳大利亚的区块链协会,宣布签署谅解备忘录以组建东盟区块链联盟(ASEAN Blockchain Consortium),旨在促进和加强区域之间的区块链技术发展。

签名仪式在印尼经济事务协调部长高级顾问 Edi Prio Pambudi 和新加坡金融管理局首席金融技术官 Sopnendu Mohanty 见证下,在区块链数字签名平台 Dedoco 完成。[2021/4/23 20:51:12]

其他

1.一般需要在什么时候做性能测试。a.项目上线前,估计系统承载能力b.项目重构后,评估效果2.如果一个项目得到性能报告就终止,这样就只是性能验证。做完全面的性能测试,同时将系统调优到最优状态,才算是一个完整的性能项目了。性能调优耗时长,还可能需要开发参与,代价高。区块链性能测试区块链的性能测试的指标最重要的是TPS与延迟,a16z的文章Whyblockchainperformanceishardtomeasure对此做了很有洞察的讨论,说明了为什么这两个指标很难测量和比较。其主要内容有以下方面:延迟

区块链开放协议WalletConnect宣布结束测试,支持连接到DApps:区块链开放协议WalletConnect宣布结束测试,v1.0协议将保持不变。另外,WalletConnect新增移动链接「Mobilelinking」功能,该协议现在不仅可以将移动钱包连接到桌面端DApps,也可连接到移动端DApps。

目前,该功能已经得到Rainbow、Metamask、GnosisSafe和Argent四个钱包的支持。WalletConnect还增加了对多种二层协议的支持,包括去年在ChannelProvider中引入了StateChannel支持、今年在StarkwareProvider中引入了Starkware支持以及增加了对与3BoxSDK兼容的3ID身份验证的支持。另外,WalletConnect还创建了一个新的WalletconnectSDK。该SDK通过一个连接即可支持多个提供商。WalletConnect目前正在研究v2.0协议规范。

注:WalletConnect大约在两年前获得了首笔资助,第一个beta版本于18个月前发布。目前有25个钱包和50多个DApp支持WalletConnect。(Medium)[2020/6/16]

延迟的这段时间的起点和终点如何定义?1.起点是用户点击提交还是交易到达内存池?2.终点是交易被第1个区块确认?还是被第6个区块确认?又或者是最终用户收到接口响应的时间?3.有些区块链系统对交易会等待一定延迟和到达一定数量才开始处理。这样比较幸运的就是最后加入的交易,其处理延迟最短。4.对于上诉问题的一种折中方案是,即准确评估整个系统需要考虑延时的分布,而不是将其延迟看做单一数字。5.有些区块链系统的交易处理是有优先级的,fee高的交易很快确认,fee低的相对慢些。fee的不同对交易的延时和TPS的统计是有影响的。吞吐量

动态 | 福布斯:超过80%的区块链部署将是混合或多云或两者兼而有之:据新浪财经援引福布斯文章《Forrester的2020年预测》,文章指出,我们(福布斯)对区块链在2020年的三个预测:1、超过80%的区块链部署将是混合或多云或两者兼而有之;2、互操作性将成为焦点;3、公开或私人许可的区块链讨论将到达执行团队。[2019/11/25]

区块链中的吞吐量,即TPS(TransactionPerSecond)来衡量,这里的transaction显示不是平等的,最简单的例子就是以太坊中的交易,它可以是转账也可以是调用合约。因此,得出TPS需要指定T指代的是什么。另外一个实际的问题是,用户其实不关心一个区块链的TPS是多少,用户只关心如何少用fee并尽快完成交易。从这个角度来讲,TPS只对系统服务提供商有意义。基本工具

压力工具

压力工具一般用Jmeter或者特定应用专用测试工具如下:1.hyperbench/hyperbench2.hyperledger/caliper:Ablockchainbenchmarkframeworktomeasureperformanceofmultipleblockchainsolutions3.https://github.com/xuperchain/xbench4.…使用Jmeter应该是更贴近使用场景,更通用。一般与区块链节点进行交互的方式有1.gRPC协议2.HTTP协议(REST接口)Jmeter支持的Sampler支持有HTTP,对gRPC协议的支持需要借助插件jmeter-grpc-request监控工具

声音 | 证券日报:网贷行业是区块链理想试点方向:据证券日报今日报道,网贷行业的业务特征与区块链的适用条件完美契合,该技术的运用不仅可以提升信用建立速度和成本,而且可提高业务运营效率。有了区块链,网贷平台可全面评估借款人的信用风险,在降低信息搜集验证成本的同时提高平台信用风险管理能力。而且,网贷行业交易频率大大低于证券市场,对硬件和技术的要求相对较低,是区块链发展初期的理想试点方向。此外,区块链技术也可以助力监管层对网贷行业的监管。[2018/7/25]

监控工具一般用Prometheus这工具可以监控的内容比较多,其生态如图(https://prometheus.io/assets/architecture.png)。在测试区块链应用的实践中,一般是先使用docker-compose部署多个区块链节点模拟正式进行测试的环境,因为正式的测试环境一般硬件配置较高,如果不是自建机房,使用云服务厂商的机器,费用昂贵,这样做可以节约成本。docker-compose中可以限制容器使用的资源,如内存和CPU算力,甚至绑定CPU核心,对这些资源的监控可以使用cadvisor。为了验证CPU限制是否准确,可以用stress-ng压满核心,看统计结果是否与限制值一致。

性能调优

一般遇到性能瓶颈的常见元原因会是网络、CPU、磁盘IO。引发磁盘IO的瓶颈的操作有写日志频频繁,打印不必要的日志,通过网络访问磁盘等。这些资源都会通过系统调用来完成,跟踪系统调用,可以使用strace来查看执行了哪些系统调用,以及在这些调用上花费的时间等信息还可能遇到的问题是系统不稳定,可以表现为CPU使用率/TPS不稳定。如果在LightLoad区域选择一定的并发压力,TPS波动较大的话,可能就是系统设计得不好,需要找到原因和优化了。如果是CPU使用率不稳定,从CPU指令执行层面来看为CPU处于idle状态的时长参差不齐。这种情况下的原因并不在于有CPU有idle,而是在于处于idle的时间段有长有短。需要借助Linux系统工具、程序对应的profilling工具来观测,找到原因。分析工具

要解决性能问题,首先需要找到原因,寻找原因的分析工具可以参考下图(https://www.brendangregg.com/Perf/linux_perf_tools_full.png)。这是Linux性能分析最重要的参考资料了,显示了在不同子系统出现性能问题后,应该用什么样的工具来观测和分析。

磁盘IO

磁盘IO一般会导致系统瓶颈,磁盘IO栈比较长,分析起来难度不小。熟悉IO栈,有助于我们发现问题(https://www.thomas-krenn.com/en/wikiEN/images/c/c2/Linux-storage-stack-diagram_v6.2.pdf)

找到原因后,如果能够通过调整操作系统参数或者应用系统参数优化性能是比较快捷的,如果需要修改代码,则会涉及系统架构优化,会有涉及和编码工作,调优周期会很长。下一篇文章将分享使用cosmos-sdk中的SimApp来进行性能测试以及在性能调优方面的方法。

标签:区块链TPSCONECT区块链专业就业前景tps币圈BaconDAOHECTA币

XRP热门资讯
MBY:获得Binance Labs等种子轮融资,链游开发商GOMBLE有何来头?

4月20日,BinanceLabs宣布已承诺投资基于区块链的韩国休闲游戏开发商GOMBLE的种子轮融资.

1900/1/1 0:00:00
FTC:一文盘点CFTC对加密公司的几次重大诉讼

美国商品期货交易委员会于周一在芝加哥联邦法院提起诉讼,指控Binance和其CEOCZ违反CFTC规定,包括《商品交易法》,未在任何注册机构的情况下.

1900/1/1 0:00:00
ENT:Figment Capital:深入解读零知识证明加速

零知识证明允许一个团体在向另一个团体证明一条声明时不需要透露除去「该声明为真实的」的信息以外的任何额外信息.

1900/1/1 0:00:00
PEN:登陆币安Launchpad,「Open Campus」有何亮点?

4月21日,Binance官宣了即将上线的第31个Launchpad项目OpenCampus,成为继Hooked和SpaceID之后第三个登上BinanceLaunchpad的BNBChain生.

1900/1/1 0:00:00
DAO:蜜糖还是砒霜?一文探讨DAO治理中隐私投票的未来

DAO是加密货币带给世界的新治理结构,它旨在为个人和团队协调和组织方式带来更多自主权。和加密货币带来的许多新事物一样,DAO带来了许多混乱,最著名的是TheDAO黑客攻击事件,它导致了以太坊的第.

1900/1/1 0:00:00
ULT:斩获6800万美元融资,LandVault如何成为元宇宙最大「包工头」?

与前两年的一拥而上相反,目前微软、Meta等科技巨头纷纷削减或关闭元宇宙部门,我们不禁要问驶向元宇宙的科技巨轮已经抛锚了吗?非也.

1900/1/1 0:00:00