金融联盟链公网性能测试回顾

背景说明

本次项目是存管系统应用区块链技术,在业务系统报文发出的环节,增加了入区块链的功能,所以性能测试也是针对系统新增的区块链部分,用JMeter等测试工具构造业务报文并发到区块链节点的8545管理端口,然后看区块链网络的整体处理情况,是一种端到端的测试。
网络拓扑结构图:
请添加图片描述

测试准备

对照上图,本性能测试环境的物理部署,分为2个机房,分别是北软机房(部署核心的挖矿节点)和滨江机房(部署普通业务节点),两机房之间走互联网进行联通;之所以要分多个机房经公网部署后进行压测,是因为将来实际生产部署时,各联盟成员必然有各自的机房,联盟成员之间连接是走互联网的。
物理部署图:
请添加图片描述
实际测试网络情况,其中北软的34.11节点到滨江的各节点,延迟在31-50ms之间;两个机房内部都是低延迟。

测试方案

测试轮次和场景的初步设计(端到端测试场景):
场景一:单商户满带宽压测

说明:从测试发起机器上发起多线程的测试请求至单个商户节点(比如24节点),24通过普通商业宽带连接挖矿节点,测试其交易吞吐量和时间延迟等指标;并和局域网条件的的同样场景进行性能比较

场景二:多商户满带宽压测

说明:从测试发起机器上发起多线程的测试请求至多个商户节点(比如24节点、25节点、26节点),这些通过普通商业宽带连接挖矿节点,测试其交易吞吐量和时间延迟等指标;并和局域网条件的的同样场景进行性能比较

场景三:多商户有限带宽压测

说明:从测试发起机器上发起多线程的测试请求至多个商户节点(比如24节点、25节点、26节点),这些通过普通商业宽带连接挖矿节点,但是其带宽受到限制(分布测试100M带宽、50M带宽、10M带宽、1M带宽、300K带宽),测试其交易吞吐量和时间延迟等指标;并和局域网条件的的同样场景进行性能比较

实测性能热点

在开始梳理性能热点之前,首先给大家一个Big Picture,了解整体:
请添加图片描述

性能热点排查一:从api到异步发送队列

指标监控发送队列长度,api送来的交易,先写入Leveldb的txpool命名空间,后通过线程读取Leveldb并写入发送队列,衡量这个过程的处理耗时和吞吐量

性能热点排查二:从异步发送队列到发出

异步队列被发送线程取出后进行交易签名等动作,填写具体的gas消耗等技术性值,后发出到以太坊区块链网络上,衡量这个过程的处理耗时和吞吐量

性能热点排查三:从以太坊网络到中心节点Pending队列

网络中交易发到中心节点,接受后,经过验证进入Pending队列,衡量这个过程的处理耗时和吞吐量

性能热点排查四:从中心节点Pending队列到区块链入链成功

交易在Pending队列,经过验证,被纳入新增的区块,经过程序中TrytoConnect后成为区块链的不可篡改的一部分,衡量这个过程的处理耗时和吞吐量

回顾与思考

这篇文章是在之前公司进行金融联盟链性能测试时的总结,已经过去了一段时间,区块链的性能指标在最近2年有极大的提升,所以本次测试时提出的性能指标,现在看来已经落伍了,但是本文中提到的测试思路、热点排查、问题归零等方法,还是对当下测试有现实的意义。
另外关于金融业务网走专线还是公网,有几点思考:

  1. 之前十多年在银行工作,和合作机构的联网都是走专线的,已经成为固定的模式,其成本和不便项目各方都是默默接受
  2. 近年来,国外一些银行开始“拆除围墙”,拥抱互联网技术栈,开放数据,开放接口,即所谓“开放银行业务”,这种业务走的都是公网
  3. 现在回头看,我们设计的这套方法,已经相当程度上拥抱公网,也符合区块链适用的场景,可谓先行者。不过区块链走公网,节约了成本,增加了便利,但是是有代价的,性能是要比专线打折(NAT、防火墙、跨运营商、深度包检查等都是有性能损耗的),特别是在高并发的场景下,某些情况下甚至引起网络不可用,考虑区块链要承载的业务重要性,业务负载飙升情况下还是要考虑专线方案
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将公网IP地址与内网主机链接起来,我们可以使用网络地址转换(NAT)和端口转发的方法。以下是具体步骤: 1. 确定公网IP地址:首先,要链接公网IP地址,需要了解你的公网IP是什么。可以通过访问网站如whatismyip.com来获取。 2. 配置路由器:进入路由器的管理界面,找到“端口转发”或“NAT”设置选项。在这里,我们可以将指定的公网端口与内网主机的私有IP地址和端口进行绑定。 3. 创建端口转发规则:在端口转发或NAT设置中,选择“新增规则”或类似的选项。然后,选择要转发的公网端口号和协议类型(如TCP或UDP)。 4. 指定内网主机:将私有IP地址和端口与添加的规则进行关联。在规则设置中,指定内网主机的私有IP和端口号。 5. 保存设置:保存并应用所有更改。现在,公网IP地址将被路由器转发到指定的内网主机。 6. 测试连接:使用其他设备连接到公网IP地址和指定的端口,验证是否成功连接到内网主机。可以使用telnet或浏览器访问,确保连接正常。 需要注意的是,上述步骤可能因路由器型号、固件版本或网络环境的不同而有所差异。确保在进行任何更改之前,详细了解你的路由器的设置界面和文档。 此外,在将内部主机暴露到公共互联网时,要确保已经采取必要的安全措施,如设置强密码、更新软件和固件、限制访问等,以防止潜在的安全威胁和攻击。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值