风险提示:央行等十部委发布《关于进一步防范和处置虚拟货币交易炒作风险的通知》, 请读者提高风险意识。

Paradigm:flood——支持EVM节点测试的负载测试工具

flood生成大型参数化RPC调用集,随机抽样,分布类似于不同类型的区块链工作负载。

MarsBit
MarsBit
热度 ...

原文作者:Storm Slivkoff, Georgios Konstantopoulos

原文标题:Introducing flood: a load testing tool for benchmarking EVM nodes

原文来源:paradigm.xyz

编译:Yvonne,MarsBit

简介

负载测试是开发弹性、高性能数据系统的关键步骤。然而,负载测试尚未广泛应用于加密货币基础设施的开发。我们很高兴能够通过引入flood来弥补这一差距,这是一个专门为RPC端点的性能分析而设计的基准测试工具。

我们最初构建的flood目的是优化Reth,并了解其在各种负载下的延迟和吞吐量。然而,我们认为,除Reth之外,flood在优化许多类型的加密基础设施的性能方面具有重要的效用。

我们很高兴在Apache/MIT许可下将flood作为免费的开源软件进行开源。它的代码和安装说明可以在Github存储库中找到。Flood既可以从命令行使用,也可以作为python库使用。还有一个Docker的flood镜像,便于集成到CI/CD和其他类型的管道( pipeline)中。

什么是负载测试,为什么它很重要?

负载测试指的是测量系统的性能特征如何受到不同类型的工作负载的影响。这种方法背后的关键见解是,当系统承受越来越多的负载时,吞吐量、延迟和错误率等性能指标通常会降低。因此,观察不同受控负载下的系统可以发现系统的瓶颈、故障模式和最终性能能力。

负载测试获得的信息可以通过多种方式加以利用。当系统处于主动开发状态时,负载测试会突出显示最需要改进的系统瓶颈。在比较两个系统时,负载测试可以揭示哪个系统性能更好或更可靠。作为一种特殊情况,负载测试可以比较单个系统的两个不同的硬件或软件配置。在每种情况下,负载测试都可以开发高度优化的系统。

如何加载测试区块链节点?

我们的重点是RPC,这是通常用于从区块链节点提取数据的通信协议。

目前,测量RPC性能最常用的方法不是负载测试,而是延迟测试:你向RPC节点发送请求,并测量获得响应所需的时间。各种RPC提供程序的延迟测试可以在各种网站上找到。不幸的是,这种类型的测试提供了有限的节点性能视图,因为它几乎没有揭示系统在负载下的行为(详情请参阅我们关于测量延迟和吞吐量的文章)。

在区块链的环境中,工作负载可以在两个重要方面发生变化。典型的变量是规模。与每秒100个请求的负载相比,每秒10,000个请求的负载会给系统带来更大的压力。另一个负载变量是RPC方法。对于从区块链节点提取的每种类型的数据,都有不同的RPC方法。例如,区块vs交易vs日志vs跟踪。每个RPC方法都将不同类型的负载放在系统上。一些RPC方法受存储IO的约束,而另一些方法受CPU的约束。

什么是flood?

考虑到这些原则,我们开发了一个称为flood的负载测试工具。flood通过以下方式为RPC端点的性能特征提供了前所未有的视角:

1)采用负载测试而不是延迟测试;

2)将测试覆盖范围扩展到所有相关的RPC方法。

Paradigm

flood由3个基本部分组成:

调用生成引擎:flood生成大型参数化RPC调用集,随机抽样,分布类似于不同类型的区块链工作负载。flood利用Paradigm Data Portal数据集来确保全面覆盖区块链历史。

负载测试引擎:flood然后调用Vegeta(一个由@tsenart在Go语言中编写的高性能负载测试工具),使用这些调用对RPC端点进行负载测试。

报告引擎:在执行测试后,flood用各种图表、表格和报告总结结果。这些摘要很容易集成到脚本和数据管道中。

关于【Paradigm:flood——支持EVM节点测试的负载测试工具】的延伸阅读

  • 解读 gigagas:造词大师 Paradigm 又一新概念,会引领新叙事出现吗?

    Paradigm提出了新的区块链性能衡量标准GPS,以每秒消耗的gas量来评估网络性能。他们开发了以太坊客户端Reth,旨在提高网络性能。目前Reth每秒可处理100-200MB gas,需要再扩展10倍才能达到目标。Paradigm建议EVM社区采用GPS作为标准指标,并结合其他维度评估性能。VC们正在投资基础设施和性能开发,以实现比现有以太坊及其他EVM公链更快的执行效率。然而,性能并非唯一关键因素,加密产品仍需努力提升用户体验和吸引用户。

  • Paradigm 跌下神坛?从顶级大 VC 到人人回避的“盘子大师”

    加密投资界的顶级VC Paradigm因投资失败的项目而受到质疑,被称为" PUAdigim"。尽管否认参与PUA策略,但其名声仍吸引投资者。韭菜们陷入两难境地,不投资怕错过机会,投资又担心被PUA。Paradigm投资了一些潜力项目,如Uniswap和StarkWare,但长期主义策略让韭菜们厌恶。在加密世界,每个角色都有自己的获取收益方式,独立思考才能找到自己的成功之路。

这些组件中的每一个都是高度可配置的,使flood能够覆盖广泛的测试场景和环境。

flood能做什么?

在flood的典型操作中,用户指定他们想要测试的RPC方法以及RPC端点列表。例如,你可能希望在两个版本的Reth上测试eth_getLogs的性能。随后,flood将针对这些RPC端点运行不同的受控负载。例如,它可能以每秒1,000、2,000、4,000和8,000个请求的速度运行eth_getLogs。继而,Flood将显示表格和图表,总结性能指标如何随负载变化。输出与下图相似的图标:

Paradigm

性能指标在负载下降低的特定方式为了解系统的瓶颈和最终性能容量提供了丰富的见解。有关解释和利用负载测试数据的详细信息,我们推荐阅读Cesarini的「Designing for Scalability with Erlang/OTP」第15章。

除了这一简单的操作模式,flood还提供了高级功能,以适应各种类型的用户:

Flood可以使用不同的负载测试计划,包括:“压力测试”(随着时间的推移逐渐增加负载),“峰值测试”(一个大的突然负载随后是小负载)和“浸泡测试”(长时间运行负载)。

flood可以协调负载测试,在每个RPC节点上以本地模式运行,以消除网络瓶颈造成的不便。

flood有一个“equality”测试模式,检查每个RPC端点是否返回相同的响应。

为什么构建flood?

在Paradigm,我们正在开发一种名为Reth的新节点实现,性能是其主要目标之一。我们开发flood是为更详细地描述Reth的性能。我们已经使用flood发现了在各种工作负载和系统配置下出现的许多Reth性能瓶颈。这些瓶颈随后得到了纠正。通过flood,我们创建了一个紧密的反馈循环,Reth开发者可以充分了解任何代码库更改如何转化为端到端系统性能。

在Reth之外,我们相信flood将能够帮助解决许多与RPC节点相关的未解决的问题:

运行节点时,哪些硬件规格最重要?存储IO与RAM速度、RAM容量与CPU速度的相对重要性是什么?RAID值得吗?

对于每个第三方RPC提供商,每个RPC方法的有效速率限制是什么?

哪个节点客户端为不同类型的工作负载提供了最佳性能?

结论

在这篇文章中,我们介绍了flood,这是一个负载测试工具,它提供了一个前所未有的区块链节点性能特征视图。虽然我们最初构建flood是为优化Reth的开发,但我们相信它将为其他类型的高性能加密基础设施的开发释放更多活力。我们期待看到更多人使用flood来构建其高性能和可靠的系统。

免责声明:本文仅代表作者个人观点,不代表链观CHAINLOOK立场,不承担法律责任。文章及观点也不构成投资意见。请用户理性看待市场风险,以及遵守所在国家和地区的相关法律法规。
图文来源:MarsBit,如有侵权请联系删除。转载或引用请注明文章出处!

标签:

分享至
https://www.chainlook.cn/toutiao/1691115113.html

下一篇:

长推:最具潜力的 8个 LSD DEFI 项目推荐

根据DeFiLlama的数据,Lido几乎拥有700万个已抵押的$ETH,市场份额为73.65%。

免责声明:
链观CHAINLOOK作为区块链技术应用与Web3行业研究的智库媒体,旨在为中国区块链专家、学者们提供最新的行业资讯信息与数据样本,用于区块链技术研究与创新。本站所发布的文章仅代表作者的个人观点,不代表链观CHAINLOOK官方立场,本站所发布的区块链行业研究报告与数据分析成果是通过人工智能算法对数据内容进行分析与归纳生成,不代表任何投资暗示与建议,链观CHAINLOOK不承担法律责任。

风险提示:
虚拟货币不具有法定货币等同的法律地位,参与虚拟货币投资交易存在法律风险,链观CHAINLOOK坚决反对各类代币炒作,请读者提高风险意识,理性看待区块链技术应用及市场风险。

© 链观CHAINLOOK All Rights Reserved. 京ICP备18054193号-5