Cointime

扫码下载App
iOS & Android

深入了解 flood:针对 EVM 节点进行基准测试的负载测试工具

个人专家

作者:Storm Slivkoff  编译:Cointime Lu Tian

简介

负载测试(Load testing)是开发高弹性、高性能数据系统的关键环节。尽管如此,负载测试在加密货币基础设施的开发中尚未得到广泛应用。为弥补这一空缺,我们推出了 flood,一款专为 RPC 端点性能分析设计的基准测试工具。

flood 最初是作为优化 Reth 工具而构建的,以便更深入地了解在不同负载下延迟和吞吐量的权衡。然而,我们相信 flood 远不止于应用在 Reth上,它在优化众多类型加密基础设施性能方面具有重要价值。

我们很荣幸以 Apache/MIT 许可证将 Flood 作为免费的开源软件发布。您可以在 Github repo 中找到其源代码和安装说明。flood 可以从命令行使用,也可以作为 Python 库使用。此外,Flood 还提供了一个 Docker 镜像,便于集成到 CI/CD 和其他类型的流程中。

什么是负载测试

负载测试是衡量系统性能特性如何受到不同类型工作负载影响的方法。关键的见解在于,随着系统承受的负载逐渐增加,吞吐量、延迟和错误率等性能指标往往会下降。因此,在受控负载条件下观察系统,有助于揭示系统瓶颈、故障模式以及性能潜力。

负载测试获取的信息可在多种场景中发挥作用。当系统处于积极开发阶段时,负载测试能够明确突出最需改进的系统瓶颈。在比较两个系统时,负载测试有助于识别哪个系统性能更优或更可靠。作为这种情况的特例,负载测试还可以比较单个系统在不同硬件或软件配置下的表现。在各种情况下,负载测试都有助于开发高度优化的系统。

如何进行区块链节点的负载测试

我们关注的焦点是 RPC,它通常用于从区块链节点获取数据的通信协议。

目前,衡量 RPC 性能的最常用方法并不是负载测试,而是延迟测试(latency testing):您向 RPC 节点发送请求,并测量获得响应所需的时间。各种 RPC 提供商的延迟测试可以在众多网站上找到。然而,这类测试提供的节点性能视角有限,因为它几乎无法展示系统在负载下的表现(更多详情,请参阅我们关于测量延迟和吞吐量的文章)。

在区块链背景下,工作负载可以在两个关键方面发生变化。一个变量是大小(size),每秒 10,000 个请求的负载对系统的压力将大于每秒 100 个请求的负载。另一个负载变量是 RPC 方法。对于从区块链节点中提取的每种类型的数据,都有不同的 RPC 方法。例如,区块与交易、日志以及追踪。每种 RPC 方法都会给系统带来不同类型的负载。部分 RPC 方法受存储 IO 限制,而其他方法受 CPU 限制。

flood 是什么

基于这些原则,我们开发了一款名为 flood 的负载测试工具。flood 通过 1) 使用负载测试替代延迟测试;以及 2) 将测试范围扩展至所有相关的 RPC 方法,为 RPC 端点的性能特征提供了前所未有的视角。

flood 主要由以下三个基本组件组成:

  1. 调用生成引擎:flood 生成大量参数化的 RPC 调用集,随机抽样分布类似于不同类型的区块链工作负载。flood 利用 Paradigm Data Portal 数据集确保全面覆盖区块链历史。
  2. 负载测试引擎:flood 接着编排 Vegeta(由 @tsenart 用 Go 编写的高性能负载测试工具)使用这些调用对 RPC 端点进行负载测试。
  3. 报告引擎:在执行测试后,flood 以各种图表、表格和报告的形式汇总结果。这些摘要便于集成到脚本和数据管道中。

每个组件都具有高度可配置性,使 Flood 能够覆盖广泛的测试场景和环境。

flood 能用来做什么

在 使用 flood 时,用户可以指定他们想要测试的 RPC 方法以及 RPC 端点列表。例如,您可能希望测试两个不同 Reth 版本中的 eth_getLogs 性能。接下来,flood 将针对这些 RPC 端点执行不同的受控负载。例如,它可能以每秒 1,000、2,000、4,000 和 8,000 个请求的速度运行 eth_getLogs。然后,flood 将展示表格和图表,概括性能指标如何随负载变化。

输出结果类似于下面的形式:

你可以点击 这里 查看更多 flood 报告。

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

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

  • flood 可以使用不同的负载测试计划,包括:压力测试(随着时间的推移逐渐增加负载)、尖峰测试(突然出现大负载,然后是小负载)和浸泡测试(长时间运行负载)。
  • flood 可以编排负载测试在每个 RPC 节点上以本地模式运行,以消除网络瓶颈引起的干扰。
  • flood 提供一个“一致性”测试模式,用于检查每个 RPC 端点是否返回相同的响应。

为什么要创建 flood 

 Paradigm 目前正在进行 Reth 的开发,性能是我们的主要关注点之一。为了深入了解 Reth 的性能特征,我们开发了 flood 工具。通过 flood 工具,我们已经发现了在不同工作负载和系统配置下出现的多个 Reth 性能瓶颈,并对其进行了修复。此外,flood 工具还为 Reth 开发人员提供了一个紧密的反馈循环,使他们能够深入了解任何代码库更改如何影响节点的端到端系统性能。

除了 Reth,我们相信 Flood 工具还可以帮助解决与 RPC 节点相关的许多未解决问题,例如:

  • 哪些硬件规格对节点性能最为重要?存储 IO 和 RAM 速度、RAM 容量和 CPU 速度之间的相对重要性是什么?RAID 是否值得使用?
  • 每个第三方 RPC 提供商的每个 RPC 方法的有效速率限制是多少?
  • 哪个节点客户端为不同类型的工作负载提供最佳性能?

在本文中,我们介绍了 flood 工具作为一种负载测试工具,它提供了前所未有的区块链节点性能特征视图。尽管我们最初构建 flood 工具是为了优化 Reth 的开发,但我们相信它将对其他类型的高性能加密基础设施的开发产生巨大的推动作用。我们期待看到更多人使用 flood 工具来构建他们自己的高性能和可靠的系统。

EVM
评论

所有评论

推荐阅读

  • 知情人士:Anthropic今年年底可用算力将达到3.5吉瓦

    AI巨头Anthropic上周提交S-1招股文件,预计本月将完成创纪录IPO,搅动华尔街情绪。 周一公司更新招股书,披露亮眼增长数据,但支出端风险同样突出。 过去一年Anthropic签下大量算力采购合约,锁定算力资源训练、运行AI大模型,押注暴涨的需求可以覆盖巨额投入。 更新版S-1显示,Anthropic第三季度营收170亿美元,同比翻12倍,环比二季度上涨47%;但净亏损230亿美元,环比增速从上一季度144%有所回落。 截至2045年,Anthropic的数据中心、芯片、算力采购承诺总额高达8954亿美元;未来12个月内,近700亿美元的合约款项就要开始兑付。 两名知情人士透露:今年年底,公司可用算力将达到3.5吉瓦,足够供应芝加哥全部家庭用电;明年目标算力再翻一倍。 Anthropic甚至深度参与数据中心设计,招聘基建、供应链专家,还向承建方采购冷却系统等硬件。 它的头号竞争对手OpenAI同样在算力上疯狂投入。知情人士透露,OpenAI预计到2030年,算力总投入约7500亿美元。

  • 现货黄金失守3900美元/盎司

    现货黄金失守3900美元/盎司,日内跌1.19%。

  • BTC突破77000美元

    行情显示,BTC突破77000美元,现报77001.78美元,24小时跌幅达到1.94%,行情波动较大,请做好风险控制。

  • SEC更新加密资产FAQ,明确“中央方”认定标准

    11月2日,据SEC公司财务部官网消息,该部门更新联邦证券法适用于加密资产的常见问题解答,新增3条问答: 广泛治理体系的参与者若互不关联、无协议安排或默契(含通过委托)协同行动,一般不视为“中央方”; “中央方监督参与”指其在协议层、验证者层或用户层单方有权控制访问、更改投票程序、修改规则代码或撤销交易,而重大运作全部由规则代码自动执行、或裁量仅经广泛治理体系行使的一般不构成; “功能性”与“去中心化”属不同概念。 该FAQ为工作人员意见,不具规则或法规效力,关联3月17日解释性发布与8月18日《加密资产监管条例》提案。

  • BTC跌破77000美元

    行情显示,BTC跌破77000美元,现报76986.81美元,24小时跌幅达到1.41%,行情波动较大,请做好风险控制。

  • 美股三大指数集体高开 科技股普遍反弹

    美股三大指数集体高开,道琼斯指数涨0.80%,标普500指数涨0.44%,纳斯达克综合指数涨0.63%。热门科技股中,苹果股价下跌0.31%,英伟达股价上涨1.48%,微软股价上涨0.32%,谷歌-A股价上涨0.99%,亚马逊股价上涨1.36%,台积电股价上涨1.42%,SpaceX股价上涨2.2%,特斯拉股价上涨1.28%,Meta股价下跌0.47%,博通股价上涨0.27%,SK海力士股价上涨2.46%,美光科技股价上涨0.14%,超威半导体股价上涨0.71%,阿斯麦股价上涨0.45%,思科股价上涨0.23%,甲骨文股价下跌3.9%,英特尔股价下跌1.22%,戴尔科技-C股价下跌0.5%,ARM股价下跌0.18%。

  • Anthropic第三季度营收同比增长1127% Claude营收达170亿美元

    11月2日,Anthropic披露,截至2026年9月30日的三个月,公司营收同比增长1127%,旗下Claude业务营收达到170亿美元。同期,公司调整后营业利润为25亿美元,调整后营业利润率为15%;但按会计口径计算,营业亏损为5.67亿美元。 此外,截至9月30日及此后,公司采购承诺及租赁协议项下的承诺支出总额约8954亿美元。

  • Strategy 上周增持 810 枚 BTC

    据 Strategy 官网数据,Strategy 上周增持 810 枚比特币,累计持仓由 848,517 枚增至 849,327 枚,今年累计买入 176,827 枚。

  • Melius Research将英伟达目标价从420美元下调至315美元

    11月2日,Melius Research:将英伟达(NVDA.O)公司目标价从420美元下调至315美元。将迈威尔科技(MRVL.O)的目标价从445美元下调至300美元。

  • 香港交易所:延长衍生产品收市后交易时段

    11月2日,香港交易所将延长衍生产品收市后交易时段。由2027年3月起,香港交易所衍生产品收市后交易时段的收市时间由现时凌晨3时延长至凌晨4时15分;将根据收市后交易时段延长后的市场发展,考虑是否于2027年11月将收市时间再延至凌晨5时15分。新安排下,收市后交易时段的收市时间将由凌晨3时延长至凌晨4时15分,让市场参与者可在香港日间交易时段以外,因应外围市况灵活管理风险。