了解区块链延迟和吞吐量

大家鲜少提到如何正确地测量一个(区块链)系统,但它却是系统设计和评估过程中最重要的步骤。系统中有许多共识协议、各种性能的变量和对可扩展性的权衡。

然而,直到目前都没有一种所有人都认同的可靠方法,能够让人进行苹果对比苹果这种同一范畴内的合理比较。在本文,我们将概述受到数据中心化系统测量机制启发的一种方法,并探讨在评估一个区块链系统时可以避免的一些常见错误。

关键指标及其相互作用

在开发区块链系统时,我们应该将两个重要指标考量在内:延迟和吞吐量。

用户关心的第一件事就是交易延迟,即发起交易或支付和收到确认交易有效性信息(比如,确认交易发起方有足够的钱)之间的时间。

在传统的 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(具有攻击性质的)”。

而更系统的方法则是使用两个负载生成器。第一个是主要的负载生成器,由它来遵循泊松分布。第二个请求生成器则用来测量延迟,并且它的负载会低得多;与系统的其余部分相比,可以将这个请求生成器视为单个客户端。即使系统向每个请求发送回复(就像某些系统所做的那样,例如 一个键值存储),我们也可以轻松地将所有回复放到负载生成器中,并只测量来自请求生成器的延迟。

唯一棘手的部分是,实际的到达间隔分布是两个随机变量的总和;但是,两个泊松分布的总和仍然是泊松分布,所以数学并不难 : )。

总结

测量大规模分布式系统对于识别瓶颈和分析压力下的预期行为是至关重要的。希望通过使用上述方法,我们都可以朝着公用语言迈出第一步,这最终将让区块链系统更适用于他们所做的工作以及他们对终端用户的承诺。

24小时热点

免费的行情软件app网站在国外有哪些?

区块链看行情的软件,简而言之,就是一类能够实时提供数字货币行 ...

2377169

波场区块链浏览器

2024年最新十大不收费看盘软件排名公布

随着股市交易的普及和技术的发展,投资者对高效、可靠且免费的看 ...

1126159

波场区块链浏览器

2024年人气最高的免费看行情的软件大全

区块链看行情的软件是指那些能够提供实时数字货币行情、市场动态 ...

450622

波场区块链浏览器

雷达币最新进展:2024年主网上线时间及前景预测

近期有传闻称,新加坡的加密货币交易所推出了一款雷达币,这款被 ...

1827806

波场区块链浏览器

什么是u币?u币怎么换成人民币?

U币通常指的是USDT(Tether),是一种与美元1:1锚 ...

267673

波场区块链浏览器

1U等于多少人民币?U币怎么兑换人民币?

U币(如USDT)是一种基于区块链技术的稳定币,其价值与美元 ...

251060

区块链圈小菜鸡

数字人民币预计全面普及时间是什么?与纸质人民币有什么差别?

数字人民币的全面普及时间是一个受到广泛关注的话题。数字人民币 ...

536594

区块链圈小菜鸡

988pay虚拟钱包使用指南分享

988pay虚拟钱包被称为数字货币钱包或者是区块链钱包,方便 ...

657985

波场区块链浏览器

2024年派币在中国被认可了吗?

派币,全称为Pi Network,是一个旨在实现相对广泛普及 ...

516234

区块链圈小菜鸡

比特币最开始价格多少一个?比特币刚进入中国多少钱一个?

比特币最开始的价格不到1美分,1美元可以兑换1300个比特币 ...

329124

区块链圈小菜鸡

热点专题

区块链网是什么

中国区块链价值评价中心 中国区块链价值评价中心于2 ...

5292806

知信链

免费的行情软件app网站在国外有哪些?

区块链看行情的软件,简而言之,就是一类能够实时提供数字货币行 ...

2377018

波场区块链浏览器

雷达币最新进展:2024年主网上线时间及前景预测

近期有传闻称,新加坡的加密货币交易所推出了一款雷达币,这款被 ...

1827508

波场区块链浏览器

2024年最新十大不收费看盘软件排名公布

随着股市交易的普及和技术的发展,投资者对高效、可靠且免费的看 ...

1125849

波场区块链浏览器

元界(Metaverse)

元界(Metaverse)是一个去中心化的公有区块链项目,元 ...

992187

WEEX数字货币

BTC123

BTC123(www.btc123.com)成立于2011年 ...

839225

Kusama 测试网

最全传销名单,请告诉家人朋友,别让他们上当受骗后赔到血本无归

因为互联网的发展,让现代传销具备了更强的隐蔽性,更让社会经验 ...

785641

律动 BlockBeats

中币网zb——中币交易所

ZB.com是一个全球化的数字货币交易所,目前已获得泰国和迪 ...

751221

中币交易所

Bitfinex(香港B网)

Bitfinex交易平台目前仍处于试运营阶段,该平台由iFi ...

722733

Hi元宇宙

DAC币——达芬奇Davinci Coin

达芬奇项目的平台是通过叫作"Dchain"的自身区块链把可以 ...

715222

Mechanism Capital