当前位置:首页>区块链

了解区块链延迟和吞吐量

日期:2023-03-17

来源:玫瑰财经网

浏览:

    了解区块链延迟和吞吐量

    来源|Paradigm.yz

    作者|Lftris Kokoris-Kogias

    如何正确测量系统(区块链)很少提及,但这是系统设计和评估过程中最重要的一步。系统有很多协议协议、各种性能的变量和可扩展性的平衡。

    但是到目前为止,没有大家认可的可靠方法。允许在苹果和苹果的同一类别内进行合理的比较。本文简要介绍了受数据中心化系统测量机制启发的一种方法,并研究了在评估区块链系统时可以避免的一些常见错误。

    主要指标和互动

    开发区块链系统时,需要考虑延迟和吞吐量这两个主要指标。

    用户关心的第一件事是交易延迟,即交易发起或支付与接收交易有效性确认信息(例如,确认交易发起者是否有足够的钱)之间的时间。

    在传统的BFT系统(如PBFT、Trdrmint、Tusk、Narwhal等)中,

    其次,系统的吞吐量一般对系统设计师来说非常重要。系统每单位处理的总负载,通常以每秒交易数(TPS)表示。

    乍一看,这两个核心指标似乎完全相反。但是吞吐量以每秒交易量衡量,延迟以秒为单位衡量。当然,吞吐量=加载/延迟。

    但事实并非如此。这种计算方法是不可能的,因为很多系统倾向于在Y轴上显示吞吐量或延迟,在轴上生成显示节点数的图表。相反,您可以生成包含吞吐量/延迟指标的更好图表,从而以非线性方式使图表更易于阅读

    了解区块链延迟和吞吐量

    没有竞争时,延迟是恒定的,改变系统的负载会改变吞吐量。这可能是因为在低竞争情况下发送交易的最低开销是固定的,队列延迟为零,所以“无论进来还是进来,都可以直接出去”。

    在竞争激烈的情况下,吞吐量是恒定的,但更改负载会改变延迟。

    这是因为系统超载,增加更多的负载会使备用队列无限长。再进一步,延迟似乎随着实验长度而变化,这是无限增长队伍的人为结果。

    根据到达间隔的分布,可以在一般的“曲棍球图”或“L图”中看到这些表示(如下所述)。因此,这篇文章的关键是我们要在热区测量。这里的吞吐量和延迟都会影响我们的标准。吞吐量和延迟中只有一个是重要的,而不是测量边缘区域。

    测量方法学

    做实验时,实验者有三个主要的设计选项。

    开环对闭环

    现在有两种主要方法来控制对目标的请求流。基于速度和到达间隔分布(例如Poisson)向目标发送请求的n=个客户端,对开环系统进行建模。闭环系统限制在给定时间内未完成的请求数。开环系统和闭环系统的区别是特定部署的特点,相同的系统可以放置在不同的场景中。

    例如,密钥存储(ky-valu stor)可以在一个闭环部署中服务数千个应用程序服务器,也可以在一个闭环部署中仅服务少数阻塞客户端。

    测试正确的部署方案是必不可少的。因为与闭环系统相比,延迟通常受潜在打开请求数的限制,而开环系统可能会生成大量的等待队列,因此延迟时间会很长。一般来说,区块链协议可以在任意数量的客户端上使用,因此在开环环境下评估更加准确。

    综合基准到达间隔分布

    如何在创建合成工作负载时向系统提交请求许多系统在测量前预先加载事务,但由于系统在异常状态0下运行,因此测量会失真。另外,预加载的请求已在主存储上,因此绕过了网络堆栈。

    更好的方法是以规定的速度发送请求(例如1000 TPS)。这可能导致出现L型图表(橙色线)。因为系统的容量最好使用。

    然而,开放系统往往不能以不可预测的方式运作。相反,有处于高负荷和低负荷的时间段。为了建立这种模型,可以使用通常基于泊松分布的概率区间分布。这导致曲棍球图表(蓝线)

    了解区块链延迟和吞吐量

    。因为即使平均速度低于最佳值,泊松爆炸也会导致部分队列延迟(最大容量)。但是,这非常有利,因为可以看到系统如何处理高负荷,以及负荷恢复正常时系统恢复得有多快。

    热身阶段

    最后要考虑的是开始测量的时候。我们希望装配线开始前充满事务。否则,就要测量预热延迟。理想情况下,预热延迟测量应通过热身阶段的延迟测量进行,直到测量结果符合所需的分布。

    如何比较

    最后一个挑战是合理比较系统的各种布局。同样,延迟和吞吐量相互依赖,因此很难生成公平的吞吐量/节点数图表。

    最好的方法是定义服务级别目标。(SLO)测量当时的吞吐量,而不是将每个系统推入最大吞吐量(在这种情况下,延迟没有意义)。在吞吐量/延迟图中

    了解区块链延迟和吞吐量

    ,在与延迟轴相交的SLO上绘制水平线和对交点采样是可视化的好方法。

    但是我设置了五秒钟的SLO。只需要两秒钟。

    使用饱和点后,为了利用稍高的可用吞吐量

    了解区块链延迟和吞吐量

    ,可能希望在此处增加负载。但是这很危险。如果系统运行配置不足,意外的请求爆炸可能会使系统完全饱和,导致延迟激增,并很快违反SLO。本质上,饱和点后运行会导致不稳定的平衡。

    因此,有两点需要考虑。

    过度分配系统。基本上,系统必须在饱和点下工作,以吸收到达间隔分布的爆炸,而不会增加大气延迟。

    如果SLO下方有空间,请增加batch的大小。这不会增加延迟,增加系统主要路径的负载,并提供更高的吞吐量以平衡所需的延迟。

    正在产生巨大的负荷。如何测量延迟

    如果在系统负载较高时尝试访问本地时钟,并将时间戳添加到到达系统的每个事务中,结果可能会扭曲。

    相反,还有两个可行的选择。第一个也是最简单的方法是对事务进行采样。例如,客户端维护计时器的事务“魔法号”(magic numbr)可能存在于某些事务中。提交时间过后,任何人都可以通过检查区块链来确定事务提交的时间,从而计算延迟。这种方法的主要优点是不干扰到达间隔分布。但是,由于某些事务需要更正,因此可以认为是“hacky”。

    更系统的方法是使用两个负荷生成器。首先是遵循泊松分布的主载荷发生器。第二个请求生成器用于测量延迟,负载要低得多。与系统的其他部分相比,可以将此请求生成器视为单个客户端。即使系统向每个请求发送响应(例如,像在某些系统(如keystore)上执行的那样),也可以轻松地将所有响应放置在加载生成器中,并且只能测量请求生成器的延迟。

    唯一棘手的地方是实际到达间隔分布是两个随机变量的总和。但是,两个泊松分布之和仍然是泊松分布,因此数学不难。

    摘要

    测量大规模分布式系统对识别瓶颈和分析压力下预期的行为至关重要。希望通过这种方法,可以用公共语言迈出第一步。这可以使区块链系统更好地应用于对最终用户的工作和承诺。

    单击下载

    European Exchange金融投资European Exchange(也称为Eurokx)是世界领先的数字资产交易所,为全球用户提供比特币、莱特货币、以太网货币等数字资产的现货和衍生品交易服务,并使用区块链技术为全球交易者提供高级金融服务。这是一个非常古老的数字货币交易平台,平台为我们提供安全、专业的数字货币交易经验,为新手提供完整的流程指导,使其易于启动,通过客服24小时在线回复提供最佳服务。

相关文章阅读

Copyright (c) 2022 玫瑰财经网 版权所有

备案号:冀ICP备17019481号

玫瑰财经网发布此信息的目的在于传播更多信息,与本站立场无关。玫瑰财经网不保证该信息(包含但不限于文字、视频、音频、数据及图表)全部或者部分内容的准确性、真实性、完整性、有效性、及时性、原创性等。
相关信息并未经过本网站证实,不对您构成任何投资建议,据此操作,风险自担。