木星链 木星链
Ctrl+D收藏木星链
首页 > 波场 > 正文

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

作者:

时间: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?的情况下处理交易。测试时可以按比例抽象实际情况。

温哥华双年展将在温哥华甘比桥展示基于区块链的数字艺术装置:金色财经报道,加拿大公共艺术展览组织温哥华双年展(Vancouver Biennale)正准备推出一个将物理和数字现实与区块链技术相结合的艺术装置。名为Voxel Bridge的装置位于温哥华甘比桥(Cambie Street Bridge)南侧,是一种基于区块链的增强现实(AR)体验,可通过iOS或Android设备观看。据当地爱好者称,该装置正准备在本周二公开发布,将持续到2023年春季。这件艺术品是由纽约艺术家Jessica Angel设计,共1800平方米,旨在探索如何在数字和物理现实中构建和利用公共空间。这幅作品在现实世界将以一幅巨大的二维乙烯基壁画的形式出现,同时通过应用程序存在于增强现实中,并保留在区块链网络上。该装置是Kusama网络的数字化、可视化表现形式。[2021/8/10 1:44:41]

3.测试方案:包括测试环境,测试数据,测试模型,性能指标等。对比区块链系统的测试,就是确定测试架构,准备好如?1000?个用户,每个用户余额?1000?stake?这样的内容。

4.需要有监控:监控的对象有压力机、区块链节点、其他如负载均衡服务器等。云原生时代的监控一般是?KubernetesPrometheusGrafana。

数字经济智库主席:马耳他正在从“区块链岛”转变为“数字岛”:数字经济智库(Digital Economy Think Tank)主席Kearon Bruno表示,马耳他正在从“区块链岛”转变为“数字岛”,因为“数字岛”这个描述可涵盖所有方面和技术成分的整体愿景。

2018年9月,马耳他时任总理Joseph Muscat在联合国大会上将马耳他称为“区块链岛”。然而,如今马耳他官方的言论正变得不那么专注于区块链,而Muscat本人也因2019年底的一场当地危机而被迫下台,并引发了内阁改组。(Cointelegraph)[2020/7/24]

5.需要测试条件:硬件环境,测试执行策略等。例如:4?C?8?G,前?60?秒,每秒增加?10?个线程。

6.需要有场景:指性能场景,正式化的描述是:在既定的环境、既定的数据、既定的执行策略、既定的监控之下,执行性能脚本,同时观察系统各层级的性能状态参数变化,并实时判断分析场景是否符合预期。性能场景,有时被称为测试用例其实是不对的。

7.要有结果报告:报告内容当然就是实际的指标数据。

1.基准性能场景:做单交易/接口的容量,为混合容量做准备。

2.容量性能场景:混合容量测试是因为线上真实场景就是由不同的业务组成的,所以由这些业务按照不同并发比例发起梯度压测就是混合容量测试场景。

动态 | 天津跨境金融区块链服务平台助力中小企业融资:12月12日消息,自跨境区块链平台在天津试点以来,外汇局天津市分局迅速组织落实,开展专题培训、加强业务指导、做好服务保障,力争试点尽快取得实效。截至11月底,天津辖内共有29家试点银行加入跨境区块链平台,利用区块链分布式账本的不可篡改和数字签名等技术,建立银企间信息交换和有效核验、银行间贸易融资信息实时互动等机制,实现对传统融资业务流程的优化再造。

跨境区块链平台有效缓解了中小企业跨境融资难题。跨境区块链平台以“出口应收账款融资(发货后)”作为业务场景,“出口报关单”信息通过区块链系统进行查验,同时平台减少了企业打印纸质材料等繁琐工作,从融资申请到发放仅需10多分钟,大大缩短了企业融资申请周期,有效降低了企业财务成本。(金融时报)[2019/12/12]

3.稳定性性能场景:核心就是时长,在长时间的运行之下,观察系统的性能表现。这个时长的设置,应该来源于运维周期。

4.异常性能场景:在强压力之下,模拟异常。

性能测试的指标有很多,比如:1.?RT,ResponseTime

2.?HPS,HitsPerSecond

3.?TPS,TransactionsPerSecond,这里的?Transactions?在传统的应用中一般称为”事务“,在区块链领域指”交易“

现场 | Michael Casey:区块链技术为中心化的数据管理提供了解决方案:金色财经现场报道,10月3日,在N.avenue株式会社在东京举办日本区块链大会b.tokyo上,MIT的Michael Casey在进行“区块链如何改变社会”的主题演讲时指出:区块链技术为中心化的数据管理提供了一个解决方案。Facebook让广告商进驻,通过付费接受服务,中心化的数据管理会产生如2016年美国大选时的数据操纵问题。全球处理的数据在不断增多,如果在中心化的机构中去对其进行管理呢?越来越困难。数据由中心化大机构掌控,普通民众无法与之进行抗衡,而区块链的去中心化本质可能帮助我们。[2019/10/3]

4.?QPS,QueriesPerSecond

5.?PV,PageView

6.?Throughput

7.?IOPS,Input/OutputOperationsPerSecond

比较重要的指标有资源使用率、吞吐量、响应时间,服务提供方比较关心前两者,用户更更新后者。关于这些指标的一般情况引用?PerformanceTestingMethodology(http://hosteddocs.ittoolbox.com/questnolg?22106?java.pdf)中的经典图来说明,实际情况可能不同。图中定义了?3?线?3?区域?3?状态,这个图值得多看看,能够大致理解指标简的关系。

动态 | 深圳“出租车助手”小程序上线,打车可“秒”开区块链电子发票:据巴比特消息,5月30日,深圳市交通运输局联合国家税务总局深圳市税务局、腾讯公司共同合作打造的出租车智慧出行平台首期应用“出租车助手”小程序正式上线,能够为乘客提供区块链电子发票、服务评价、失物招领等服务。据悉,这是全国范围内首个出租车行业电子发票应用平台,也是首个“区块链发票”生态体系应用研究成果。[2019/5/31]

1.?3?线:Utilization,Throughput,ResponseTime

2.?3?区域:LightLoad,HeavyLoad,BuckleZone

3.?3?状态:ResourceSaturated,ThroughputFalling,?EndUsersEffected

1.一般需要在什么时候做性能测试。

a.项目上线前,估计系统承载能力

b.?项目重构后,评估效果

2.如果一个项目得到性能报告就终止,这样就只是性能验证。做完全面的性能测试,同时将系统调优到最优状态,才算是一个完整的性能项目了。性能调优耗时长,还可能需要开发参与,代价高。

区块链性能测试

区块链的性能测试的指标最重要的是?TPS?与延迟,a16z的文章Whyblockchainperformanceishardtomeasure?对此做了很有洞察的讨论,说明了为什么这两个指标很难测量和比较。其主要内容有以下方面:

延迟的这段时间的起点和终点如何定义?1.起点是用户点击提交还是交易到达内存池?

2.终点是交易被第?1?个区块确认?还是被第?6?个区块确认?又或者是最终用户收到接口响应的时间?

3.有些区块链系统对交易会等待一定延迟和到达一定数量才开始处理。这样比较幸运的就是最后加入的交易,其处理延迟最短。

4.对于上诉问题的一种折中方案是,即准确评估整个系统需要考虑延时的分布,而不是将其延迟看做单一数字。

5.有些区块链系统的交易处理是有优先级的,fee?高的交易很快确认,fee?低的相对慢些。fee?的不同对交易的延时和?TPS?的统计是有影响的。

区块链中的吞吐量,即?TPS(TransactionPerSecond)来衡量,这里的?transaction?显示不是平等的,最简单的例子就是以太坊中的交易,它可以是转账也可以是调用合约。因此,得出?TPS?需要指定?T?指代的是什么。

另外一个实际的问题是,用户其实不关心一个区块链的?TPS?是多少,用户只关心如何少用?fee?并尽快完成交易。从这个角度来讲,TPS?只对系统服务提供商有意义。

压力工具

压力工具一般用Jmeter或者特定应用专用测试工具如下:

1.?hyperbench/hyperbench

2.?hyperledger/caliper:Ablockchainbenchmarkframeworktomeasureperformanceofmultipleblockchainsolutions?

3.?https://github.com/xuperchain/xbench

4.?…

使用?Jmeter?应该是更贴近使用场景,更通用。一般与区块链节点进行交互的方式有

1.?gRPC?协议

2.?HTTP?协议(REST?接口)

Jmeter?支持的?Sampler?支持有?HTTP,对?gRPC?协议的支持需要借助插件jmeter-grpc-request

监控工具一般用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?栈,有助于我们发现问题(https://www.thomas-krenn.com/en/wikiEN/images/c/c?2/Linux-storage-stack-diagram_v?6.2.pdf)

找到原因后,如果能够通过调整操作系统参数或者应用系统参数优化性能是比较快捷的,如果需要修改代码,则会涉及系统架构优化,会有涉及和编码工作,调优周期会很长。

下一篇文章将分享使用?cosmos-sdk?中的?SimApp?来进行性能测试以及在性能调优方面的方法。

标签:区块链TPSCPUMET区块链适合什么人做tps币行情CPU币MetaRaca

波场热门资讯
ETH:数据:3月份NFT销售额约为8.82亿美元,环比下降约31%

4月3日消息,据CryptoSlam数据,3月份NFT销售额环比下降31.42%,从2月份的10.3亿美元销售额下降至8.8289亿美元.

1900/1/1 0:00:00
COM:XT.COM關於暫停DEL鏈上代幣充提的公告

尊敬的XT.COM用戶:因DEL錢包升級維護,XT.COM現已暫停DEL鏈上代幣充提業務。給您帶來的不便,請您諒解!感謝您對XT.COM的支持與信任.

1900/1/1 0:00:00
ALG:Algorand (ALGO) 代币价格上涨,SOL持平

Algorand(ALGO)价格随着FIFA的新合作伙伴关系而上涨,而Solana(SOL)随着顶级NFT项目迁移到其他区块链而保持平稳.

1900/1/1 0:00:00
WEB:Web3 可以改变世界。为什么船上没有更多人?

MPCHLabs的MilesParry写道,尽管Web3具有巨大的潜力,但它对大多数人来说仍然过于笨重和不透明。以下是可以使其更加用户友好的内容.

1900/1/1 0:00:00
FIL:FIL的虚拟机上线了,哪些问题在阻碍用户参与?

很多小伙伴期待Filecoin的虚拟机FVM上线已经一年左右的时间,但真到了上线后,又突然感觉:就这?怎么玩呐?好像有点懵。实际上,不止是普通用户懵,估计很多项目方也懵的.

1900/1/1 0:00:00
SOL:Solana 期权协议 Cega 即将在ETH上启动主网

奇异衍生品协议CegaFinance将在以太坊主网上启动,从其原生Solana分支出来在传统金融中,奇异期权或多或少地扮演着与常规期权相同的角色——在标的资产上启用杠杆多头和空头.

1900/1/1 0:00:00