跳到主要内容

区块链性能压测

1. 测试背景

​ 区块链技术作为一种去中心化、安全可信的分布式系统,已经在各行各业得到广泛应用。然而,由于其底层技术的特殊性,如去中心化、共识算法和智能合约等,区块链系统的性能一直是一个重要的关注点。为了评估和优化区块链系统的性能,进行底层性能测试是必不可少的。

​ 区块链底层性能测试是指通过模拟和评估区块链系统在不同负载和场景下的性能表现,以衡量其处理能力、吞吐量、延迟和可扩展性等关键指标。这些测试可以帮助开发者及相关人员了解区块链系统的瓶颈所在,并采取相应的优化措施。

2. 环境准备

2.1 网络拓扑图

2.2 环境配置

主机硬件环境软件环境
Node1CPU:Intel(R) Xeon(R) Platinum 8369HB CPU @ 3.30GHz核数:8内存:16GB磁盘:100G操作系统:Centos7.2
Node2CPU:Intel(R) Xeon(R) Platinum 8369HB CPU @ 3.30GHz核数:8内存:16GB磁盘:100G操作系统:Centos7.2
Node3CPU:Intel(R) Xeon(R) Platinum 8369HB CPU @ 3.30GHz核数:8内存:16GB磁盘:100G操作系统:Centos7.2
Node4CPU:Intel(R) Xeon(R) Platinum 8369HB CPU @ 3.30GHz核数:8内存:16GB磁盘:100G操作系统:Centos7.2
压测机CPU:Intel Core Processor (Skylake)核数:8内存:16GB磁盘:300G操作系统:CentOS Linux release 7.2.1511 (Core)

2.3 测试物料准备

2.3.1 4节点环境准备

​ 请运维人员部署节点服务器

2.3.2 修改配置文件

进入config目录下,修改bubi.json配置文件以下配置参数

修改参数说明
max_trans_per_ledger5000每个区块最多打包的交易数
queue_limit102400交易缓存池最多交易数量
queue_per_account_txs_limit5000交易缓存池中每个账号允许的最多交易数量
close_interval1出区块最短间隔时间1s

2.3.3 启动节点

​ 进入scripts目录下,./bubid start,启动

​ 检查区块是否增长:curl 127.0.0.1:29333/getLedger,如果区块正常增加,可进行下一步操作

3. 测试过程

3.1 测试方法

​ 执行测试脚本,不停向验证节点发送交易,类型为“转账”。统计节点处理的交易量、区块数和所用时间,求平均值。

3.2 测试交易结构

"items":[
{
"private_keys":[
"privbyxPed8m4TU7cmo2SNR6Pi3YNkQ1Hnvg99ZuNcd7LmVLkc5af9Qw"
],
"transaction_json":{
"fee_limit":491000,
"gas_price":1000,
"nonce":13,
"operations":[
{
"pay_coin":{
"amount":"5000000000000",
"dest_address":"adxSp1X4V7hXDDRBKHL6U21CpbPhki7YqjuUd",
"input":""
},
"type":7
}
],
"source_address":"adxSko4uT8BwG7MtP73e79gGeCdkRbwkU6JMT"
}
}
]

3.3 开始测试

​ 1.回到编译环境,首先初始化账号

​ 2.然后用初始化账户进行转账操作

​ 3.计算交易耗时

4. 测试结果

区块个数总交易数耗时(s)平均区块时间(s)TPS
60132907860122151

总共发送1329078笔交易,交易耗时60s,TPS为22151(交易数/秒)