值得信赖的区块链资讯!
了解区块链延迟和吞吐量
原文作者:Lefteris Kokoris-Kogias
大家鲜少提到如何正确地测量一个(区块链)系统,但它却是系统设计和评估过程中最重要的步骤。系统中有许多共识协议、各种性能的变量和对可扩展性的权衡。
然而,直到目前都没有一种所有人都认同的可靠方法,能够让人进行苹果对比苹果这种同一范畴内的合理比较。在本文,我们将概述受到数据中心化系统测量机制启发的一种方法,并探讨在评估一个区块链系统时可以避免的一些常见错误。
关键指标及其相互作用
在开发区块链系统时,我们应该将两个重要指标考量在内:延迟和吞吐量。
用户关心的第一件事就是交易延迟,即发起交易或支付和收到确认交易有效性信息(比如,确认交易发起方有足够的钱)之间的时间。
在传统的 BFT 系统中(如 PBFT、Terdermint、Tusk 和 Narwhal 等),一旦交易被确认就会被敲定,而最长链共识机制(如 Nakamoto Consensus、Solana/Ethereum PoS)中,一笔交易可能会被打包进区块,然后再重组。结果就是,我们需要一直等到交易达到「k 个区块深」了才能进行敲定,这就导致了延迟的时间大大超过了单次确认的时间。
其次,系统的吞吐量一般对于系统设计者来说十分重要。这就是系统每单位时间所处理的总负载,一般表达为每秒交易量 (TPS)。
乍一看,这两个关键指标看起来是完全相反的东西。但因为吞吐量由每秒的交易量得出,而延迟则是以秒为单位进行测量。自然而然地,我们会认为吞吐量 = 负载/延迟。
但事实并非如此。因为许多系统倾向于生成在 y 轴上展示吞吐量或延迟,而在 x 轴上展示节点数量的图表,所以这种计算方式的实现是不可能的。相反,我们能生成一个更好的、包含吞吐量/延迟指标的图表,它以非线性的方式呈现让图表清晰易读。

当没有竞争时,延迟是恒定的,仅是改变系统的负载,就可以改变吞吐量。会发生这种情况,是因为低竞争情况下,发送交易的最小开销是固定的,且队列延迟为 0,致使「无论进来什么,都能直接出去」。
在竞争激烈的情况下,吞吐量是恒定的,但仅是改变负载就可以让延迟发生变化。
这是因为系统已经超负载了,而增加更多负载会造成等待队列无限变长。更反常的是,延迟似乎会随着实验长度而发生变化,这是一个无限增长队列的人为结果。
这些表现都可以在典型的「曲棍球图」或「L 型图」上看到,它取决于到达间隔的分布(下文会谈论到)。因此,这篇文章的关键要点是,我们应该在热区进行测量,这里的吞吐量和延迟都会影响我们的基准;而不用测量边缘区域,这里的吞吐量和延迟只有一个是重要的。

测量方法论
在做实验时,实验者有三种主要的设计选项:
开环 vs. 闭环
现在有两种可以控制对目标发出请求流的主要方法。开环系统基于 n = 个客户端进行建模,这些客户端根据速率 和到达间隔分布(例如 Poisson)向目标发送请求。闭环系统会在任何给定时间内限制未完成请求的数量。开环系统和闭环系统的区别是特定部署的特点,同一个系统可以部署在不同的场景中。
例如,一个键值存储(key-value store)可以在一个开环部署中为数千个应用程序服务器提供服务,或在一个闭环部署中只为几个阻塞客户端提供服务。
对正确的部署场景进行测试是必不可少的,因为比起闭环系统的延迟通常受制于潜在的未完成请求数量,而开环系统可能会产生大量的等待队列,所以,延迟会更长。一般来说,区块链协议可以被任意数量的客户端使用,所以在开环环境下对其做评估会更准确。
综合基准测试的到达间隔分布
在创建合成工作负载时,我们必然会问:如何向系统提交请求?许多系统在测量之前会先预加载事务,但这会使测量产生偏差,因为系统从异常状态 0 开始运行。此外,预加载的请求已经在主存储器中,也因此绕过了其网络堆栈。
更好一些的方法则是以确定的速率发送请求(比如,1000 TPS),这会导致 L 型的图表(橙线)的出现,因为系统的容量得到了最佳使用。

然而,开放系统往往不以可预测的方式运作。相反,它们有处于高负载和低负载的时间段。为了对此进行建模,我们可以采用概率间隔分布,该分布一般是基于泊松分布。它将导致「曲棍球」图表(蓝线),因为即使平均速率低于最佳值,泊松爆发也会导致一些排队延迟(最大容量)。但这对我们十分有利,因为我们可以看到系统如何处理高负载以及负载恢复正常时,系统恢复的速度有多快。
热身阶段
最后要考虑的一点是何时开始测量。我们希望流水线在开始之前充满事务;否则,将需要测量预热延迟。理想情况下,预热延迟的测量应该通过热身阶段中的延迟测量来完成,直到测量结果遵循预期的分布。
如何进行比较
最后一个难题是合理比较系统的各种部署。同样,难点在于延迟和吞吐量是相互依赖的,因此我们可能难以生成公平的吞吐量/节点数图表。
最好的方法是定义服务级别目标 (SLO) 并测量当时的吞吐量,而不是简单地将每个系统推到其最高吞吐量(这种情况下,延迟毫无意义)。在吞吐量/延迟图上绘制一条与延迟轴相交 SLO 处的水平线并对相交点进行采样,这是一种可视化的好方法。

但我设置了 5 秒的 SLO,它只需要 2 秒。
有人可能想要增加这里的负载,以便利用饱和点之后稍高的可用吞吐量。但是这很危险。如果系统操作配置不足,意外的请求爆发将导致系统达到完全饱和,致使延迟激增且很快会违背 SLO。实质上,在饱和点之后运行会导致一种不稳定的平衡。
因此,有两点需要考虑:
1. 过度配置系统。本质上,系统应该在饱和点以下运行,以便吸收到达间隔分布中的爆发,而不会导致排队延迟增加。
2. 如果 SLO 下方有空间,请增加 batch 的大小。这会增加系统关键路径上的负载,而不会增多排队延迟,它为你提供更高的吞吐量以获得你所要的更高延迟权衡。
我正在产生巨大的负载,该如何测量延迟呢?
当系统的负载很高时,尝试访问本地时钟,并为到达系统的每个事务添加时间戳可能会导致结果出现偏差。
相反,还有两个更可行的选择。第一种也是最简单的方法是对事务进行抽样;例如,在某些事务中可能存在一个魔数(magic number),而这些事务是客户端为其保留计时器的事务。在提交时间之后,任何人都可以检查区块链以确定这些事务何时提交,从而计算它们的延迟。这种做法的主要优点是,它不会干扰到达间隔分布。但是,因为必须修改某些事务,所以它可能被认为是「hacky(具有攻击性质的)」。
而更系统的方法则是使用两个负载生成器。第一个是主要的负载生成器,由它来遵循泊松分布。第二个请求生成器则用来测量延迟,并且它的负载会低得多;与系统的其余部分相比,可以将这个请求生成器视为单个客户端。即使系统向每个请求发送回复(就像某些系统所做的那样,例如 一个键值存储),我们也可以轻松地将所有回复放到负载生成器中,并只测量来自请求生成器的延迟。
唯一棘手的部分是,实际的到达间隔分布是两个随机变量的总和;但是,两个泊松分布的总和仍然是泊松分布,所以数学并不难 : )。
总结
测量大规模分布式系统对于识别瓶颈和分析压力下的预期行为是至关重要的。希望通过使用上述方法,我们都可以朝着公用语言迈出第一步,这最终将让区块链系统更适用于他们所做的工作以及他们对终端用户的承诺。
在未来的工作中,我们计划将此方法应用于现有的共识机制中,如果有兴趣,请在 Twitter 上联系!
致谢:所有这些都是我在设计和实施 Narwhal & Tusk(最佳论文奖 @ Eurosys 2022)期间与我的合著者吸取的经验教训,还有之前 Marios Kogias、Joachim Neu、Georgios Konstantopoulos 和 Dan Robinson 对草稿的评论。
比推快讯
更多 >>- OKX 将下架 FLOW/USDT 杠杆交易及活期借贷
- Lighter 创始人:此前 LIT 代币大额转账与空投无关,APP 或将在未来几周内上线
- Glassnode 分析师:比特币每日已实现亏损达 3 亿美元,亏损抛售行为并未明显下降
- Bitwise CIO:未来十年比特币回报或稳健上行,但难现“爆炸式”增长
- 全国电力工程造价与定额管理工作会议:积极探索人工智能、区块链等前沿技术在造价管理中的创新应用
- 某巨鲸从 OKX 再次提取 3997 枚 ETH,目前总浮亏 657.6 万美元
- 哈塞特成为下一任美联储主席概率降至 42%,沃什当选概率升至 31%
- 分析人士警告:贵金属价格已站在悬崖边缘,回调风险正在累积
- Multicoin 联创:2026 年底 Solana 链上主流币现货和永续合约交易量将与主流 CEX 竞争甚至可能超越
- 波段巨鲸pension-usdt.eth增持 ETH 空单,持仓规模达 7664 万美元
- 某鲸鱼抛售一个月前囤积的 2,720 万枚 ARC,疑似引发币价下跌
- Coinbase:2026 年加密市场将由永续合约、预测市场与稳定币支付主导
- 数据:共计 422.42 万枚 TON 转入 TON Elector Contract,价值约 701 万美元
- Polymarket 预测 Lighter 于 12 月 29 日空投概率下降至 64%,12 月 30 日概率异常上升
- 香港 2025 年十大财经新闻:香港发展数字经济虚拟资产监管框架趋完善位列第三
- 谷歌趋势显示“白银”搜索兴趣创历史新高
- 萨尔瓦多近 7 日共增持 8 枚 BTC,总持仓 7,514.37 枚
- Lighter 创始人:不会搞“代币一套,股权一套”的双轨结构,价值只会流向代币
- 分析:比特币无需等待黄金和白银回调即可继续上涨
- Lighter 创始人:不会公开反女巫算法,我们对筛查结果有信心
- 数据:45.98 枚 BTC 从 Hyperunit 转入 Wintermute,价值约 318.94 万美元
- 比特币现货 ETF 单日总净流出 2.76 亿美元,持续 6 日净流出
- 观点:企业财库的 BTC 配置宜控制在 1–5%,当前市场环境应谨慎增持
- AISIM 宣布与 World Friendship Foundation 合作,推动 WFCA 稳定币经济圈扩张
- 数据:当前加密恐慌贪婪指数为 23,处于极度恐慌状态
- 数据:115.72 枚 BTC 从匿名地址转出,经中转后转至另一匿名地址
- DeBot:将在 24 小时内发布赔偿登记表并进行 100%全额赔偿
- Bitwise 首席投资官:比特币未来十年将稳步上涨,但涨幅有限
- 数据:BAND、ICX、ALGO 触及本周新高,AIXBT、ZBT 冲高回落超 10%
- Trust Wallet:已收到逾 2630 份索赔工单,金额从 105-350 万美元不等
- Huma:部分用户 Vanguard 徽章遭撤因未满足持续质押要求,暂将宽限期延至 1 月 5 日
- 数据:某巨鲸未等待“1 亿枚销毁”利好落地提前清仓 UNI,累计获利 2341.5 万美元,
- Project Hunt:多链收益耕作优化器 Beefy Finance 为过去 7 天被 Top 人物取关最多的项目
- 某鲸鱼向 CEX 存入 192.6 万枚 ASTER,若出售或将损失 60 万美元
- Star 回应 DeBot 安全事件:DEX Bot 类产品安全标准须达交易所级别,否则风险极高
- 数据:Hyperliquid 平台鲸鱼当前持仓 54.24 亿美元,多空持仓比为 0.93
- Flow 基金会提出的协议修复方案已获验证者一致同意并成功部署
- 马斯克:白银价格屡创新高,这可不好
- 白银市值跃升至全球第三,与 NVIDIA 差距缩小至 5%以内
- TRM Labs:LastPass 被盗资产指向俄罗斯犯罪团伙,其通过混币工具洗钱
- “加密货币”一词谷歌搜索量持续低迷,散户投资者兴趣下降
- 某巨鲸再次卖出 5000 枚 ETH,总计出售 40,621 枚 ETH,总价值 1.185 亿美元
- pump.fun 向 Kraken 转移 5000 万 USDC,近一个半月累计转移 6.05 亿 USDC
- Uniswap 财库销毁 1 亿枚 UNI,价值 5.96 亿美元
- 数据:某巨鲸持有 3 倍 ZEC 多头头寸,获利逾 500 万美元
- Trust Wallet 启动 700 万美元黑客攻击受害者赔偿流程
- Flow:执行层遭攻击导致约 390 万美元资产流出,用户资金安全
- 数据:BTC 当前全网 8 小时平均资金费率为 0.002%
- Bitmine 已累计质押 25.7 万枚 ETH,总价值 7.5 亿美元
- 数据:1 亿枚 UNI 从 Uniswap 转入 Dead Address,价值约 5910 万美元
比推专栏
更多 >>观点
比推热门文章
- Lighter 创始人:此前 LIT 代币大额转账与空投无关,APP 或将在未来几周内上线
- Glassnode 分析师:比特币每日已实现亏损达 3 亿美元,亏损抛售行为并未明显下降
- Bitwise CIO:未来十年比特币回报或稳健上行,但难现“爆炸式”增长
- 全国电力工程造价与定额管理工作会议:积极探索人工智能、区块链等前沿技术在造价管理中的创新应用
- 某巨鲸从 OKX 再次提取 3997 枚 ETH,目前总浮亏 657.6 万美元
- 哈塞特成为下一任美联储主席概率降至 42%,沃什当选概率升至 31%
- 分析人士警告:贵金属价格已站在悬崖边缘,回调风险正在累积
- Multicoin 联创:2026 年底 Solana 链上主流币现货和永续合约交易量将与主流 CEX 竞争甚至可能超越
- 波段巨鲸pension-usdt.eth增持 ETH 空单,持仓规模达 7664 万美元
- 某鲸鱼抛售一个月前囤积的 2,720 万枚 ARC,疑似引发币价下跌
比推 APP



