教你看清真实TPS PlatON定义标准性能评估模型

由于公认的不可能三角的存在,性能一直是制约区块链的主要因素之一。于是,突破TPS成了公链竞争的主要手段和突破方向,在这样的背景下,很多区块链项目热衷于标榜鼓吹高TPS,其发布的测试数据大都缺乏统一和明确的度量标准,也不存在标准化的测试方法。
为在规范、完整、严谨、可用的评估方法指导下对PlatON展开性能测试,PlatON定义了一套标准的性能评估模型以及基准测试过程,用以对区块链系统的性能进行标准化的评估。
在PlatON测试网历次性能测试中,均沿用了此标准化性能评估模型,我们与社区成员一起在测试网上进行了各种功能测试、异常测试、安全测试、治理演练与各种环境下的压力测试,目前PlatON已在测试网环境下和仿真环境下分别完成了四次压力测试,并取得了第一手测试数据。下面我们简述标准的性能评估模型的组成及任务。
完备的测试架构模型
 

下图为典型的区块链系统基准测试的技术架构,通过最外层的测试工具或节点内的测试插件将工作负载注入内层的待测系统,模拟实际的交易场景,并监测统计各类指标数据。

· 待测系统
本文档中待测试系统定义为运行和维护区块链系统所需的硬件、软件、网络等整体配置,不包括客户端API、外部关联库或任何用于优化读操作的外部缓存或数据库。
· 测试工具
为全面评估区块链系统,需要从不同维度对区块链系统进行评估,不同维度的测试方法也不同, 这里设计了两种测试工具、测试插件与测试客户端。在测试场景中会选择不同的测试工具从不同层次对区块链系统进行测试。
· 多维度的测试指标
我们将区块链系统的测试指标分为性能指标、资源指标、稳定性指标、可扩展性指标和可靠性指标。
· 性能指标
这里定义了几个评估区块链系统性能的几个关键指标。分别为交易响应时间、系统处理能力、交易成功率。
指标数据分析方法如下:
· 每类指标应按照时间序列分析平均、最高、最低和标准差值。
· 采集系统稳定运行时间段内的数据,采样粒度为3秒,每过3秒计算前3秒内完成的事务指标的平均、最高、最低值。
· 资源指标
资源指标指系统在负载情况下所消耗的系统资源,包括CPU、内存、磁盘存储和网络流量。
任何服务器都可以运行节点加入,因此不同节点的配置千差万别,如果资源消耗太高,会导致部分节点崩溃或处理性能下降,成为整个网络的短板,拉低整个网络的处理性能。
资源指标同时也衡量节点参与网络的成本。
· 稳定性指标
系统按照最大容量的80%或标准负载(系统的预期日常压力)情况下能稳定运行一段时间。
区块链系统需要7X24运行,因此至少应该能够保证系统稳定运行24小时以上。如果系统不能稳定地运行,上线后,随着交易量的增长和长时间运行,将会出现性能下降甚至崩溃的风险。
· 可扩展性指标
系统按照固定的标准负载(系统的预期日常压力)运行,逐步增加节点,检测增加节点数与增加的处理能力之间的关系。
一般来说,随着硬件资源的增加,分布式系统的处理能力能得到线性或接近线性的提升。但是区块链系统运行在P2P的网络条件下,所有的消息包括共识都是通过P2P方式广播,其通信复杂度随着节点数的增加呈线性或指数增加,处理能力也相应下降甚至停止。
· 可靠性指标
评估系统对崩溃失败的恢复能力,以及遭受双重花费(double spending)或自私挖矿(selsh mining)攻击的影响:
网络或节点故障,包括节点崩溃、网络延迟和随机消息损坏、恶意节点试图恶意分叉。
在系统设计的容错范围内,不应出现停止出块或分叉。
设置真实的测试环境
区块链特别是公链是去中心化的,其运行环境不受控制,节点的分布和配置参差不齐,因此应该尽可能按照实际运行情况定义节点配置,以充分评估区块链系统在真实环境下的运行状况。
· 节点分布
所有节点应该在地理位置上分散到全球多个区域,至少包含欧洲、北美、南美、亚太、中东等几个区域。
如果没有条件,可在局域网内通过工具设置网络延迟和网络丢包率模拟跨全球不同区域的网络。具体取值可参考跨太平洋的不同AWS区域之间的平均网络时延300ms,以及跨太平洋的不同Verizon区域之间的网络丢包率1%。
· 节点配置
根据主流区块链系统节点情况,节点配置设定为高中低三个等级。

此外PlatON运用了以基础数据、交易类型、请求分布为组合的测试负载,用于评估性能空间中特定的点。同时还将基准测试分为五层,从性能、可扩展性、可用性、安全性和稳定性五个方面进行综合评估,以保障性能测评结果的客观真实有效。
PlatON川陀主网上线在即,标准性能评估模型可反映主网上线后的真实环境与性能指标,帮助PlatON夯实底层,让社区成员及全球用户了解最真实的PlatON,共建数字时代的隐私计算网络与金融基础设施。