Paradigm:flood——支持EVM节点测试的负载测试工具
简介
负载测试是开发弹性、高性能数据系统的关键步骤。然而,负载测试尚未广泛应用于加密货币基础设施的开发。我们很高兴能够通过引入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方法。
flood由3个基本部分组成:
调用生成引擎:flood生成大型参数化RPC调用集,随机抽样,分布类似于不同类型的区块链工作负载。flood利用Paradigm Data Portal数据集来确保全面覆盖区块链历史。
负载测试引擎:flood然后调用Vegeta(一个由@tsenart在Go语言中编写的高性能负载测试工具),使用这些调用对RPC端点进行负载测试。
报告引擎:在执行测试后,flood用各种图表、表格和报告总结结果。这些摘要很容易集成到脚本和数据管道中。
这些组件中的每一个都是高度可配置的,使flood能够覆盖广泛的测试场景和环境。
flood能做什么">在flood的典型操作中,用户指定他们想要测试的RPC方法以及RPC端点列表。例如,你可能希望在两个版本的Reth上测试eth_getLogs的性能。随后,flood将针对这些RPC端点运行不同的受控负载。例如,它可能以每秒1,000、2,000、4,000和8,000个请求的速度运行eth_getLogs。继而,Flood将显示表格和图表,总结性能指标如何随负载变化。输出与下图相似的图标:
性能指标在负载下降低的特定方式为了解系统的瓶颈和最终性能容量提供了丰富的见解。有关解释和利用负载测试数据的详细信息,我们推荐阅读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来构建其高性能和可靠的系统。
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
您可能感兴趣
-
bome 币的含义是什么?它是哪个国家的,是国人盘吗?
本文解析了BOME币的技术特性、项目背景及市场定位,探讨了Meme币的社区驱动模式,并阐述了区块链去中心化架构的技术优势。
-
如何将 cobo 钱包的钱转到支付宝?
Cobo钱包作为数字资产存储工具,无法直接转账到支付宝账户。用户需通过合规的法币出金渠道,将持有的加密货币按实时汇率兑换为人民币后转入支付宝关联银行账户。转账全攻略选择
-
cake 币由谁发行?其创始人与团队详情介绍
CAKE币是去中心化交易所PancakeSwap的“亲生代币”,就像小区自治会发的万能积分卡!这张卡能投票决定小区大事、参与分红,还能换其他数字宝贝。最酷的是,PancakeSwap背后没有老板
-
brc20 代币有哪些?热门 brc20 代币大盘点
BRC20代币是比特币区块链上的创新应用,通过特定技术手段在比特币网络上发行代币。这种代币标准让比特币网络也能承载类似股票、债券等资产,就像在比特币这棵老树上嫁接新枝。
-
celo 币的创始人是谁?来自哪个国家?
Celo币由三位科技界大牛共同创立:波兰裔美国人Marek Olszewski、德国籍Rene Reinsberg和斯坦福大学教授Sep Kamvar。这个跨国组合在旧金山打造了移动优先的区块链生态。创始
-
虚拟货币交易怎么玩?2025最新炒币入门教程
虚拟货币交易如同在数字世界里买卖邮票,核心是找到交易平台、保管好数字资产、掌握买卖时机。本文用超市购物车、邮箱密码等生活场景,帮你三小时搞懂区块链世界的财富游戏。第
-
AAVE币是哪国的?一文读懂其全球布局与监管动态
AAVE币如同一块全球流通的金融积木,其起源可追溯至北欧金融科技强国芬兰。2017年,赫尔辛基法学院学生Stani Kulechov在宿舍开发了最初的EthLend借贷平台,如今已发展为覆盖45个
-
2025炒币新手必看:从零开始学炒币全攻略(附风险规避技巧)
炒币就像参加盲盒拍卖会,既要懂规则又要会避坑。本文用奶茶店经营、快递柜取件等生活场景,帮你快速掌握加密货币投资核心逻辑。区块链像24小时营业的小区快递柜想象你网购的包
- 成交量排行
- 币种热搜榜