广告

了解区块链延迟和吞吐量

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

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

关键指标及其相互作用

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

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

在传统的 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小时热点

正规合法的区块链有哪些?盘点十大国际区块链交易平台!

随着区块链接的技术发展,区块链交易平台成为投资者们最重要的选 ...

2997

波场区块链浏览器

BLOC币(积木云)合并?

BLOC币是一种加密货币,也是积木云项目的代币。积木云是一个 ...

580

区块链网快讯

中国信通院

中国信息通信研究院(China Academy of Inf ...

66071

Solanat

南面云区块链防伪追溯系统

南面云区块链防伪追溯系统 南京南面文化传播有限 ...

27834

REVV Motorsport

全节点

​全节点是是拥有完整区块链账本的节点,全节点需要占用内存同步 ...

54650

YOYO元宇宙

什么是Optimistic Rollup?

自下而上解释Optimistic Rollup 区块链 ...

98959

CoinMarketCap

科普区块链:Block Reward 积分奖励

区块链指协调和记录数字记录的安全性分布式账本技术。区块链使普 ...

40384

蚂蚁矿机

区块链的“硬件钱包”是什么?

区块链的“硬件钱包”是指可以安全储存和管理数字货币的物理设备 ...

30992

IDEX

结论

我们在此提出了一种不需要信用中介的电子支付系统。我们首先讨论 ...

26886

希壤

2019支付牌照持牌机构公司列表

央行前后一共发了270张支付牌照,减去4家被注销的浙江易士、 ...

59642

GEEK数字藏品
广告

热点专题

区块链网是什么

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

5255200

知信链

元界(Metaverse)

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

945741

WEEX数字货币

BTC123

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

713734

Kusama 测试网

DAC币——达芬奇Davinci Coin

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

683474

Mechanism Capital

Bitfinex(香港B网)

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

647318

Hi元宇宙

MCO币

MCO,前为Monaco,朝着让每个钱包都载有加密货币的愿景 ...

645505

第九空间

熊猫矿机(PandaMiner)

熊猫矿机(PandaMiner),企业文化背景为:其一,熊猫 ...

619500

金融界区块链频道

陈景润证明哥德巴赫猜想1+2的论文

大偶数表为一个素数及一个不超过二个素数的乘积之和 。 本 ...

582638

鲸探

中币网zb——中币交易所

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

517122

中币交易所

五大区块链骗局揭露

从古至今,骗子这个行当一直都是经久不衰,上至皇宫贵族,下至农 ...

512034

DeRace