Skip to main content
QUICK REVIEW

[论文解读] Performance Tuning and Scaling Enterprise Blockchain Applications

Grant Chung, Luc Desrosiers|arXiv (Cornell University)|Dec 24, 2019
Software System Performance and Reliability参考文献 21被引用 13
一句话总结

本文提出了一套针对基于 Hyperledger Fabric 构建的企业级区块链应用的性能调优及水平/垂直扩展的系统化方法,无需修改 Fabric 源代码,在本地环境中实现 1,900 TPS,在云环境中实现 3,000 TPS。该方法结合工作负载感知调优、基础设施优化和组件级分析,弥合了实验结果与生产性能之间的差距。

ABSTRACT

Blockchain scalability can be complicated and costly. As enterprises begin to adopt blockchain technology to solve business problems, there are valid concerns if blockchain applications can support the transactional demands of production systems. In fact, the multiple distributed components and protocols that underlie blockchain applications makes performance optimization a non-trivial task. Blockchain performance optimization and scalability require a methodology to reduce complexity and cost. Furthermore, existing performance results often lack the requirements, load, and infrastructure of a production application. In this paper, we first develop a methodical approach to performance tuning enterprise blockchain applications to increase performance and transaction capacity. The methodology is applied to an enterprise blockchain-based application (leveraging Hyperledger Fabric) for performance tuning and optimization with the goal of bridging the gap between laboratory and production deployed system performance. We then present extensive results and analysis of our performance testing for on-premise and cloud deployments, in which we were able to scale the application from 30 to 3000 TPS without forking the Hyperledger Fabric source code and maintaining a reasonable infrastructure footprint. We also provide blockchain application and platform recommendations for performance improvement.

研究动机与目标

  • 解决实验室区块链性能结果与真实生产系统能力之间的关键差距。
  • 克服在具有相互依赖协议和组件的多组件分布式区块链系统中进行优化的复杂性。
  • 开发一种可重复、系统化的性能调优方法,以在企业部署中最大化吞吐量并最小化延迟。
  • 通过真实应用工作负载、完整日志记录和生产级配置,在生产级环境中展示可扩展的性能。
  • 识别并解决区块链组件(如 stateDB、共识机制和对等节点角色)中的关键性能瓶颈。

提出的方法

  • 应用三阶段事务追踪方法(背书、排序、提交)以识别跨区块链组件的性能瓶颈。
  • 在本地(Z 系统)和云(IBM Cloud)部署环境中,针对不同基础设施配置进行广泛的性能测试。
  • 系统性地调优关键参数,包括区块大小、提交策略以及对等节点角色(例如,拆分背书和提交对等节点)。
  • 使用日志、追踪和指标收集并分析所有事务阶段和系统组件的性能数据。
  • 通过增加 CPU 核心数(最高至 16 个)和内存(最高至 16 GB)来评估垂直扩展,并分析虚拟到物理 CPU 映射的影响。
  • 分析并优化关键组件,如使用缓冲通道优化 CouchDB stateDB 访问模式和区块验证。

实验结果

研究问题

  • RQ1如何将系统化方法应用于调优企业级区块链应用,以实现最大性能和可扩展性?
  • RQ2在生产级 Hyperledger Fabric 部署中,主要性能瓶颈是什么,如何加以缓解?
  • RQ3在不修改底层区块链平台源代码的前提下,通过水平和垂直扩展可将吞吐量提升多少?
  • RQ4不同的部署环境(本地 vs. 云)和基础设施配置如何影响事务处理性能?
  • RQ5虚拟到物理 CPU 映射在性能下降中扮演什么角色,如何实现优化?

主要发现

  • 该方法使吞吐量提升了 63 倍,从本地环境的 30 TPS 提升至 1,900 TPS,通过配置调优和基础设施扩展实现。
  • 云部署通过利用 24 个 vCPU 和优化基础设施,实现了 3,000 TPS,表明其性能扩展优于本地环境。
  • CouchDB stateDB 交互被识别为主要瓶颈,原因在于低效的锁机制和 I/O 模式,尤其在高负载下表现明显。
  • 将对等节点角色拆分为专用的背书和提交对等节点,减少了资源争用,提升了事务处理效率。
  • 在区块验证中使用缓冲通道减少了阻塞的 goroutine 数量,提升了验证阶段的吞吐量。
  • 较高的虚拟到物理 CPU 映射比例(例如 6:1)限制了 CPU 利用率并导致性能下降,表明需要更低的超分配比率以实现最佳性能。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。